怎么让 trae 写前端的时候,写好的时候,调用一下 chrome 实际看一下 F12 里面的内容都是否正常啊?

怎么让 trae 写前端的时候,写好的时候,调用一下 chrome 实际看一下 F12 里面的内容都是否正常啊?
现在很大的一个痛点就是 trae 写的前端代码,yarn dev 运行是一点问题没有
但是实际浏览器一访问就是各种浏览器 console 报错
比如下面这样的。

图片.png

我已经给 trae 添加 chrome-devtools-mcp 的 mcp 了,为什么不会调用 chrome 做检查啊?

图片.png

阅读 830
avatarAI BotBETA

要让 trae(假设指代一个AI或代码生成工具)在生成前端代码后自动调用 Chrome 并检查 F12 控制台错误,需要通过 自动化测试工具 实现。以下是具体步骤和代码示例:


方案:使用 Puppeteer 自动化 Chrome 检查

Puppeteer 是 Google 官方的 Node.js 库,可控制 Chrome 并直接获取控制台日志。

步骤:

  1. 安装 Puppeteer
    在项目中安装 Puppeteer:

    npm install puppeteer
  2. 创建检查脚本
    新建 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();
    })();
  3. 集成到工作流
    package.json 中添加脚本命令:

    "scripts": {
      "dev": "yarn run your-dev-command & node check-console.js"
    }

    运行:

    yarn dev

关键点说明

  1. 为什么 chrome-devtools-mcp 无效?

    • chrome-devtools-mcp 是 Chrome DevTools 协议的基础库,不会自动执行检查,需手动编写逻辑(如 Puppeteer 的封装)。
    • Puppeteer 直接封装了 DevTools 协议,简化了操作。
  2. 常见问题处理

    • 页面未完全加载:在脚本中增加 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 + Puppeteer

如果需集成到测试流程,可结合 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.js

总结

  • 核心工具:使用 Puppeteer 直接控制 Chrome 并捕获控制台错误。
  • 集成时机:在本地开发命令(如 yarn dev)后自动运行脚本。
  • 错误定位:通过监听 console 事件过滤 error 类型日志。
  • 进阶方案:结合 Jest 将检查流程自动化到测试套件中。
注:如果 trae 是特定工具,需确认其是否支持插件系统或自定义钩子,否则需手动执行检查脚本。
1 个回答

看一下教程嘛,有说怎么样做自动化测试的。

如果仅仅靠对话,完全让AI自动做这些动作,那么你需要做好对应的Skills.md,或者在全局的Agent.md 中说明每次输出结果之后使用什么工具来做自动化测试。

可能Trae还没有好好完善这部分吧。我日常使用Cursor是没有这个问题的,会自动执行我配置好的校验script来检测输出在控制台的异常信息。以及如果是UI部分,可以直接开 浏览器模式 来Debug。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题