在浏览器自动化领域,Playwright-MCP(基于Playwright的扩展工具)和Trae(轻量型浏览器自动化工具)是两类具有代表性的方案,分别侧重“企业级多浏览器管控”和“轻量化脚本生成与执行”。以下从工具定位、核心功能、实现浏览器自动化的具体流程、优势对比及实战案例展开说明,帮助理解两者如何落地自动化场景。

一、工具定位与核心能力

1. Playwright-MCP
  • 定位:基于微软Playwright的增强型工具,聚焦“多浏览器统一管控(Multi-Browser Control Platform)”,强化可视化配置、批量执行与团队协作能力,适用于企业级Web自动化测试、爬虫或RPA场景。
  • 核心能力
    • 继承Playwright的跨浏览器支持(Chrome/Edge、Firefox、WebKit),支持无头/有头模式;
    • 提供可视化控制台,可通过UI配置自动化流程(减少纯代码编写);
    • 支持批量脚本调度、并行执行及分布式运行(适配大规模测试需求);
    • 内置报告生成(含截图、录屏、错误堆栈)与CI/CD集成能力。
2. Trae
  • 定位:轻量级浏览器自动化工具,主打“低代码脚本生成”与“快速场景复现”,适合个人开发者或小型团队的快速自动化需求(如简单表单提交、页面监控)。
  • 核心能力
    • 基于Chrome DevTools Protocol(CDP),专注Chrome/Edge浏览器自动化;
    • 支持“录制-回放”功能(通过操作浏览器自动生成脚本);
    • 脚本语法简洁(类JavaScript),无需复杂环境配置;
    • 内置基础断言与网络请求拦截能力,适合快速验证页面行为。

二、实现浏览器自动化的具体流程

场景:实现“电商网站登录→搜索商品→加入购物车”的自动化流程
1. Playwright-MCP实现流程

Step 1:环境搭建

  • 安装Playwright-MCP(依赖Node.js):
    npm install playwright-mcp -g
    # 自动安装Playwright核心依赖及浏览器驱动
    mcp install browsers
    
  • 启动可视化控制台:
    mcp dashboard  # 访问http://localhost:8080进入UI界面
    

Step 2:创建自动化项目与脚本

  • 在控制台新建项目(如“ecommerce-automation”),选择目标浏览器(Chrome、Firefox);
  • 编写自动化脚本(支持JavaScript/TypeScript,可通过UI向导辅助生成):
    // 脚本:login-search-addcart.js
    const { chromium, firefox } = require('playwright-mcp');
    
    async function run() {
      // 启动多浏览器(并行执行)
      const browsers = await Promise.all([
        chromium.launch({ headless: false }),  // 有头模式,便于观察
        firefox.launch({ headless: false })
      ]);
    
      for (const browser of browsers) {
        const page = await browser.newPage();
        try {
          // 1. 登录
          await page.goto('https://example-mall.com/login');
          await page.fill('#username', 'testuser');  // 自动等待元素可见
          await page.fill('#password', 'testpass');
          await page.click('#login-btn');
          await page.waitForURL('**/home');  // 等待跳转首页
    
          // 2. 搜索商品
          await page.fill('#search-input', '无线耳机');
          await page.press('#search-input', 'Enter');
          await page.waitForSelector('.product-item');  // 等待商品列表加载
    
          // 3. 加入购物车
          await page.click('.product-item:first-child .add-cart-btn');
          await page.waitForSelector('.cart-notice');  // 等待加入成功提示
    
          // 截图验证
          await page.screenshot({ path: `cart-${browser.browserType().name()}.png` });
        } catch (e) {
          console.error(`浏览器${browser.browserType().name()}执行失败:`, e);
        } finally {
          await browser.close();
        }
      }
    }
    
    run();
    

Step 3:配置执行与结果分析

  • 在控制台选择脚本,配置执行参数(如并发数、重试次数、执行时间);
  • 点击“执行”后,工具自动调度多浏览器并行运行,实时在控制台显示进度;
  • 执行完成后,查看生成的报告:
    • 包含各浏览器的执行状态(成功/失败);
    • 失败用例附带错误截图、页面录屏及DOM快照;
    • 可导出HTML报告或集成到Jenkins(通过WebHook)。
2. Trae实现流程

Step 1:安装与启动

  • 安装Trae(仅支持Chrome/Edge,无需额外依赖):
    npm install trae -g
    
  • 启动Trae录制工具:
    trae record  # 自动打开Chrome浏览器,进入录制模式
    

Step 2:录制自动化流程

  • 在弹出的Chrome窗口中手动操作:
    1. 访问https://example-mall.com/login,输入用户名/密码,点击登录;
    2. 在首页搜索“无线耳机”,点击第一个商品的“加入购物车”;
  • 操作完成后,点击Trae工具栏的“停止录制”,自动生成脚本(trae-script.js):
    // 自动生成的脚本(可手动编辑)
    const trae = require('trae');
    
    async function run() {
      const browser = await trae.launch({ headless: false });
      const page = await browser.newPage();
    
      // 录制的步骤
      await page.navigate('https://example-mall.com/login');
      await page.fill('input#username', 'testuser');
      await page.fill('input#password', 'testpass');
      await page.click('button#login-btn');
      await page.waitForNavigation();  // 等待登录跳转
    
      await page.fill('input#search-input', '无线耳机');
      await page.press('input#search-input', 'Enter');
      await page.waitForElement('.product-item');
    
      await page.click('.product-item:first-child .add-cart-btn');
      await page.waitForElement('.cart-notice');
    
      // 断言:验证购物车提示文本
      const noticeText = await page.getText('.cart-notice');
      if (noticeText.includes('加入成功')) {
        console.log('测试通过');
      } else {
        console.error('测试失败:未出现成功提示');
      }
    
      await browser.close();
    }
    
    run();
    

Step 3:执行与调试

  • 直接执行脚本:
    trae run trae-script.js
    
  • 执行过程中,Trae会在控制台输出步骤日志,失败时显示错误位置(如“未找到元素.cart-notice”);
  • 支持断点调试:在脚本中添加await trae.debug(),执行到此时会暂停,可手动操作浏览器后继续。

三、核心功能对比与适用场景

维度 Playwright-MCP Trae
浏览器支持 全量(Chrome/Edge、Firefox、WebKit) 仅Chrome/Edge(基于CDP)
脚本编写方式 代码优先(支持UI辅助),语法灵活 录制优先,自动生成脚本,适合低代码场景
执行能力 支持并行、分布式执行,适合大规模场景 单浏览器串行执行,适合轻量需求
高级功能 网络拦截(mock请求)、设备模拟(手机)、iframe穿透 基础网络拦截,无设备模拟
报告与集成 丰富报告(截图/录屏),深度集成CI/CD 简易日志输出,集成能力弱
学习成本 中等(需了解Playwright API) 低(录制即可生成脚本)

四、实战优势总结

  • Playwright-MCP:适合企业级场景,尤其是需要跨浏览器兼容性测试、大规模并行执行或团队协作的需求,其可视化管控和完善的报告能力可显著降低管理成本。
  • Trae:适合个人开发者或快速验证场景,通过“录制-回放”快速实现自动化,无需深入学习API,适合临时脚本或简单流程自动化。

通过上述工具,可根据场景复杂度和团队规模选择:复杂跨浏览器场景优先用Playwright-MCP,简单快速自动化需求则用Trae,两者均能有效替代传统Selenium的繁琐配置,提升浏览器自动化效率。

Logo

更多推荐