Playwright MCP在经过几轮子代理的调用后,会莫名其妙的关闭了,之后的子代理再调用时,就打不开了。

Playwright MCP在经过几轮子代理的调用后,会莫名其妙的关闭了,之后的子代理再调用时,就打不开了。

然后看日志似乎后面的子代理调用了Chrome DevTools MCP,但是又看不到启动界面。

           ✔  BrowserClick 查询按钮, e1683
              ...eneric [ref=e1809]: 逾期完成
                              - generic [ref=e1810]: "0"
                            - generic [ref=e1811]:
                              - generic [ref=e1812]: 平均完成天数
                              - generic [ref=e1813]: 0.0 天
              ```

           ✔  BrowserTakeScreenshot docs/test/screenshots/scenes/scene7/scene7-02-chart.png
              ...'/tmp/playwright-mcp-output/2026-02-21T10-32-16.917Z/-home-qshaw-jl-box-workorder-system-docs-test-screenshots-scenes-scene7-scene7-02-chart.png',
                scale: 'css',
                type: 'png'
              });
              ```

              [图片:image/png]

           ✔  BrowserClick 导出报表按钮, e1689
              ...完成天数
                                - generic [ref=e1813]: 0.0 天
                - menu "导出报表" [active] [ref=e2145]:
                  - menuitem "工单统计报表" [ref=e2146] [cursor=pointer]
                  - menuitem "产量汇总报表" [ref=e2147] [cursor=pointer]
              ```

           x  BrowserClick 产量汇总报表菜单项, e2147

           x  BrowserSnapshot BrowserSnapshot tool call

           x  BrowserNavigate http://localhost:3000/report

           x  BrowserSnapshot BrowserSnapshot tool call

           x  BrowserNavigate http://localhost:3000/report

           x  BrowserInstall BrowserInstall tool call

           x  BrowserNavigate http://localhost:3000/report

           x  RunShellCommand  ls -la /tmp/playwright-mcp-output/*/ 2>/dev/null | head -50;...

           ✔  RunShellCommand  find /home/qshaw -name "*.xlsx" -mmin -10 2>/dev/null; find ...

           x  BrowserNavigate http://localhost:3000/report

           ✔  RunShellCommand  curl -s http://localhost:3000/report 2>&1 | head -20; curl -...
              ...-width, initial-scale=1.0" />
                  <title>frontend-pc</title>
                </head>
                <body>
                  <div id="app"></div>
                  <script type="module" src="/src/main.ts"></script>
                </body>
              </html>
              {"detail":"Not Found"}

           x  BrowserNavigate http://localhost:3000/report

           x  BrowserClose BrowserClose tool call

           ✔  SearchFileContent  "export.*report|导出" in backend
              找到 33 个matches

           ✔  SearchFileContent  "export.*report|导出报表|exportReport" in frontend-pc/src
              找到 5 个matches

           ✔  ReadFile frontend-pc/src/views/report/index.vue, 80, 560
              从 frontend-pc/src/views/report/index.vue 读取第 561-640 行,共 686 行

           ✔  ReadFile frontend-pc/src/views/report/index.vue, 50, 530
              从 frontend-pc/src/views/report/index.vue 读取第 531-580 行,共 686 行

           ✔  ReadFile frontend-pc/src/api/statistics.ts
              从 frontend-pc/src/api/statistics.ts 读取所有 54 行数据

           ✔  RunShellCommand  curl -s "http://localhost:8000/api/v1/statistics/export?repo...
              /tmp/test-export.xlsx: JSON text data

              bash: line 1: jq: command not found


           x  RunShellCommand  TOKEN=$(curl -s -X POST 'http://localhost:8000/api/v1/auth/l...

           ✔  RunShellCommand  curl -s -X POST 'http://localhost:8000/api/v1/auth/login' -H...
              ...r","expires_in":86400,"user":{"id":5,"username":"manager","openid":null,"nickname":"生产经理","avatar":null,"phone":null,"team_id":null,"role":"manager","is_active":1,"created_at":"2026-02-20T20:07:51"}}}

           ✔  RunShellCommand  TOKEN=$(curl -s -X POST 'http://localhost:8000/api/v1/auth/l...
              /tmp/test-export.xlsx: Microsoft Excel 2007+
              -rw-r--r-- 1 qshaw qshaw 5119 Feb 21 18:36 /tmp/test-export.xlsx


           ✔  RunShellCommand  python3 -c " import zipfile import xml.etree.ElementTree as ...
              Excel文件内容:
                docProps/app.xml
                docProps/core.xml
                xl/theme/theme1.xml
                xl/worksheets/sheet1.xml
                xl/styles.xml
                _rels/.rels
                xl/workbook.xml
                xl/_rels/workbook.xml.rels
                [Content_Types].xml


           ✔  RunShellCommand  python3 -c " import zipfile import re  with zipfile.ZipFile(...
              工作表内容:
                A1:
                A3:
                B3: 65
                A5:
                B5:
                C5:
                A6:
                B6: 65
                C6: 1


           ✔  RunShellCommand  cp /tmp/test-export.xlsx /home/qshaw/jl-box/workorder-system...
              total 16
              drwxr-xr-x  2 qshaw qshaw 4096 Feb 21 18:37 .
              drwxr-xr-x 16 qshaw qshaw 4096 Feb 21 15:33 ..
              -rw-r--r--  1 qshaw qshaw 5119 Feb 21 18:37 scene7-03-export.xlsx


           ✔  RunShellCommand  find /tmp/playwright-mcp-output -name "*scene7*" -type f 2>/...
              ...-docs-test-screenshots-scene7-scene7-01-report-page.png
              /tmp/playwright-mcp-output/2026-02-21T10-32-16.917Z/-home-qshaw-jl-box-workorder-system-docs-test-screenshots-scenes-scene7-scene7-02-chart.png

           ✔  RunShellCommand  cp /tmp/playwright-mcp-output/2026-02-21T10-30-33.425Z/-home...
              ...-r--  1 qshaw qshaw 195409 Feb 21 18:37 scene7-01-report-page.png
              -rw-r--r--  1 qshaw qshaw 205611 Feb 21 18:37 scene7-02-chart.png
              -rw-r--r--  1 qshaw qshaw   5119 Feb 21 18:37 scene7-03-export.xlsx

           ✔  TodoWrite Update Todos     ✔ 启动测试环境(后端+前端服务)     ✔ 场景1: 新员工入职账号创建     ✔ 场景2: 班组结构调整     ✔ 场景3: 系统配置修改     ✔ 场景4: 每日工单创建与派工     ✔ 场景5: AI创建工单     ✔ 场景6: 工单进度监控     ✔ 场景7: 报表查看与导…
              ...系统配置修改
                  ✔ 场景4: 每日工单创建与派工
                  ✔ 场景5: AI创建工单
                  ✔ 场景6: 工单进度监控
                  ✔ 场景7: 报表查看与导出
                  ☐ 场景8: 报工审核
                  ☐ 场景9: 扫码报工
                  ☐ 场景10: 查看个人工时


     📋 Task Completed: 场景7-报表查看与导出

     📊 Execution Summary:
       • Duration: 8m 15s
       • Rounds: 38
       • Tokens: 48,141

     🔧 Tool Usage:
       • Total Calls: 37
       • Success Rate: 67.6% (25 success, 12 failed)



✻ 思考中...

  场景7测试通过。继续执行场景8 - 报工审核。

✦ 场景7通过。继续执行场景8:
  ✔  Plan 更新待办事项列表(3个待处理,1个进行中,8个已完成)
     ·已更新待办事项列表
       ⎿ ✔ 启动测试环境(后端+前端服务)
         ✔ 场景1: 新员工入职账号创建
         ✔ 场景2: 班组结构调整
         ✔ 场景3: 系统配置修改
         ✔ 场景4: 每日工单创建与派工
         ✔ 场景5: AI创建工单
         ✔ 场景6: 工单进度监控
         ✔ 场景7: 报表查看与导出
         ☐ 场景8: 报工审核
         ☐ 场景9: 扫码报工
         ☐ 场景10: 查看个人工时
         ☐ 暂停询问用户是否继续


✻ 思考中...

  执行场景8 - 报工审核

  ✔  task Launch agent(frontend-tester): 场景8-报工审核
      🟡 Frontend Tester 代理 已完成 (第 45 轮) - 72 条消息 • 34m 26s

         模型: glm-5

         任务:

         工具:
           x  BrowserSnapshot BrowserSnapshot tool call

           x  BrowserNavigate http://localhost:5173

           x  BrowserInstall BrowserInstall tool call

           ✔  RunShellCommand  mkdir -p /home/qshaw/jl-box/workorder-system/docs/test/scree...

           ✔  RunShellCommand  curl -s -o /dev/null -w "%{http_code}" http://localhost:5173...

           x  BrowserNavigate http://localhost:5173

           ✔  RunShellCommand  pgrep -la chromium || pgrep -la chrome || pgrep -la firefox ...
              No browser process found


           ✔  RunShellCommand  which npx && npx playwright --version 2>/dev/null || echo "P...
              /home/qshaw/.nvm/versions/node/v22.22.0/bin/npx
              Version 1.58.2


           ✔  RunShellCommand  cd /home/qshaw/jl-box/workorder-system/frontend-pc && npx pl...

           x  BrowserNavigate http://localhost:5173

           ✔  RunShellCommand  echo "DISPLAY=$DISPLAY" && echo "WAYLAND_DISPLAY=$WAYLAND_DI...
              DISPLAY=:0
              WAYLAND_DISPLAY=wayland-0


           ✔  RunShellCommand  cd /home/qshaw/jl-box/workorder-system/frontend-pc && node -...
              Browser launched successfully


           x  BrowserNavigate http://localhost:5173

           ✔  RunShellCommand  cd /home/qshaw/jl-box/workorder-system/frontend-pc && node -...
              ...and substitution: line 1: `button:has-text("${btn}")'
              bash: command substitution: line 1: syntax error near unexpected token `"${btn}"'
              bash: command substitution: line 1: `button:has-text("${btn}")'

           ✔  Glob  "**/login/**/*.vue" in frontend-pc
              找到 1 个匹配文件

           ✔  ReadFile frontend-pc/src/views/login/index.vue
              从 frontend-pc/src/views/login/index.vue 读取所有 156 行数据

           ✔  WriteFile  frontend-pc/test-scene8-playwright.mjs
              import { chromium } from 'playwright';
              import fs from 'fs';

              const screenshotDir = '/home/qshaw/jl-box/workorder-system/docs/test/screenshots/scenes/scene8/';

              (async () => {
                console.log('🚀 启动浏览器...');
                const browser = await chromium.launch({ headless: true });
                const context = await browser.newContext({
                  viewport: { width: 1280, height: 800 },
                  locale: 'zh-CN'
                });
                const page = await context.newPage();

                let results = [];
                let testPassed = true;
                let issues = [];