怎么让 trae 写前端的时候,写好的时候,调用一下 chrome 实际看一下 F12 里面的内容都是否正常啊?
现在很大的一个痛点就是 trae 写的前端代码,yarn dev 运行是一点问题没有
但是实际浏览器一访问就是各种浏览器 console 报错
比如下面这样的。
我已经给 trae 添加 chrome-devtools-mcp 的 mcp 了,为什么不会调用 chrome 做检查啊?
怎么让 trae 写前端的时候,写好的时候,调用一下 chrome 实际看一下 F12 里面的内容都是否正常啊?
现在很大的一个痛点就是 trae 写的前端代码,yarn dev 运行是一点问题没有
但是实际浏览器一访问就是各种浏览器 console 报错
比如下面这样的。
我已经给 trae 添加 chrome-devtools-mcp 的 mcp 了,为什么不会调用 chrome 做检查啊?
要让 trae(假设指代一个AI或代码生成工具)在生成前端代码后自动调用 Chrome 并检查 F12 控制台错误,需要通过 自动化测试工具 实现。以下是具体步骤和代码示例:
Puppeteer 是 Google 官方的 Node.js 库,可控制 Chrome 并直接获取控制台日志。
安装 Puppeteer
在项目中安装 Puppeteer:
npm install puppeteer创建检查脚本
新建 check-console.js 文件:
const puppeteer = require('puppeteer');
(async () => {
// 启动 Chrome 并打开页面
const browser = await puppeteer.launch({ headless: false }); // 非无头模式,便于调试
const page = await browser.newPage();
// 监听控制台输出
page.on('console', msg => {
if (msg.type() === 'error') {
console.error(`[CONSOLE ERROR] ${msg.text()}`);
}
});
// 导航到本地开发服务器
await page.goto('http://localhost:3000'); // 替换为你的开发地址
// 等待页面加载(根据需求调整时间或选择器)
await page.waitForTimeout(5000);
// 关闭浏览器
await browser.close();
})();集成到工作流
在 package.json 中添加脚本命令:
"scripts": {
"dev": "yarn run your-dev-command & node check-console.js"
}运行:
yarn dev为什么 chrome-devtools-mcp 无效?
chrome-devtools-mcp 是 Chrome DevTools 协议的基础库,不会自动执行检查,需手动编写逻辑(如 Puppeteer 的封装)。常见问题处理
page.waitForSelector('#some-element') 确保 DOM 就绪。跨域错误:启动 Chrome 时添加参数:
const browser = await puppeteer.launch({
args: ['--disable-web-security'] // 禁用跨域限制
});动态内容错误:使用 page.evaluate() 触发交互操作:
await page.evaluate(() => {
document.querySelector('button').click(); // 模拟点击
});如果需集成到测试流程,可结合 Jest:
// test/consoleTest.js
const puppeteer = require('puppeteer');
describe('Console Error Check', () => {
it('should have no console errors', async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
const errors = [];
page.on('console', msg => {
if (msg.type() === 'error') errors.push(msg.text());
});
await page.goto('http://localhost:3000');
await page.waitForTimeout(2000);
await browser.close();
expect(errors).toEqual([]); // 断言无错误
});
});运行测试:
jest test/consoleTest.jsyarn dev)后自动运行脚本。console 事件过滤 error 类型日志。注:如果 trae 是特定工具,需确认其是否支持插件系统或自定义钩子,否则需手动执行检查脚本。11 回答1.2k 阅读
3 回答956 阅读✓ 已解决
2 回答953 阅读✓ 已解决
3 回答927 阅读✓ 已解决
2 回答646 阅读
3 回答962 阅读
3 回答958 阅读
看一下教程嘛,有说怎么样做自动化测试的。
如果仅仅靠对话,完全让AI自动做这些动作,那么你需要做好对应的Skills.md,或者在全局的Agent.md 中说明每次输出结果之后使用什么工具来做自动化测试。
可能Trae还没有好好完善这部分吧。我日常使用Cursor是没有这个问题的,会自动执行我配置好的校验script来检测输出在控制台的异常信息。以及如果是UI部分,可以直接开 浏览器模式 来Debug。