AI+浏览器自动化方案环境适配性测试报告
测试日期: 2026-06-02 测试环境: WSL2 (Linux 6.6.114.1-microsoft-standard-WSL2) + WSLg + Claude Code/Cursor 参考文章:
Chrome DevTools MCP 使用指南 PlaywClaude Code 浏览器自动化怎么选?5 套方案实测对比(2026) skills: web-access
1. 环境概况
| 未安装 | ||
| 已安装 | ||
2. 文章三种连接方式测试
方式一:默认模式(新实例)
配置:
{"command": "npx","args": ["-y", "chrome-devtools-mcp@latest"]}测试结果: 安装系统库后可用
MCP 服务器进程正常启动并显示 Connected安装系统库前:Chrome 因缺少 libnspr4.so等库而无法启动,工具调用返回Target closed安装系统库后:MCP 服务器可成功启动 Chrome 实例(需重启 Claude Code 会话使工具生效) MCP 服务器在 claude mcp list中显示状态为✓ Connected
方式二:autoConnect(日常首选)
配置:
{"command": "npx","args": ["chrome-devtools-mcp@latest", "--autoConnect"]}测试结果: 不可用
需要 Chrome 146+ 稳定版,且在 chrome://inspect/#remote-debugging启用调试WSL2 环境中没有安装用户态 Chrome 浏览器(仅有 Puppeteer/Playwright 的 headless 版本) autoConnect 需要完整的 Chrome GUI 实例,headless 版本不支持此模式 结论: 当前环境不满足此方式的前提条件。如需使用,需安装完整 Chrome 并通过 WSLg 运行
方式三:手动连接 --browserUrl(推荐方案)
配置:
{"command": "npx","args": ["chrome-devtools-mcp@latest", "--browserUrl", "http://127.0.0.1:9444"]}测试结果: 完全可用(推荐方案)
启动 Chrome:
# Chrome 可直接启动,无需 LD_LIBRARY_PATH(系统库已安装)/home/xiuerhuahuazi/.cache/puppeteer/chrome/linux-147.0.7727.57/chrome-linux64/chrome \ --headless --no-sandbox --disable-gpu \ --remote-debugging-port=9444 \ --user-data-dir=/tmp/chrome-debug-profile \ --disable-dev-shm-usage about:blank验证调试端口:
curl http://127.0.0.1:9444/json/version# 返回: Chrome/147.0.7727.57, Protocol-Version: 1.3MCP 服务器通过 --browserUrl 成功连接到 Chrome 实例,所有 CDP 功能可用。
3. CDP 功能测试结果(安装系统库后)
通过 Playwright 连接 Chrome 147 headless 实例,逐项验证文章中提到的核心功能及扩展功能:
测试通过率:18/18 (100%)
4. Chrome DevTools MCP 文章要点与环境适配评估
4.1 「打开新窗口」问题
文章指出默认模式会打开全新 Chrome 窗口,导致无登录态。在当前环境中:
默认模式: 安装系统库后可正常启动 Chrome(headless),但仍是独立实例,无实例,可完全控制浏览器状态,推荐使用 Headless 模式的额外限制: 无 GUI,部分网站检测 headless 状态后拒绝服务或布局不同
4.2 --user-data-dir 关键修复
文章强调 Chrome 136+ 的安全策略会忽略默认目录的远程调试。在当前环境中:
使用 Puppeteer Chrome 配合 --user-data-dir=/tmp/chrome-debug-profile可正常启用远程调试这一修复方案完全适用且必要 不使用此参数时,Chrome 会因安全策略忽略 --remote-debugging-port
4.3 v1.1.1 新功能支持评估
lighthouse_audit 工具可用,headless 模式可运行 | ||
--slim) | ||
take_memory_snapshot | ||
list_network_requestsget_network_request 可用 | ||
performance_start_tracestop_trace 可用 | ||
5. 环境兼容性问题与解决方案
问题 1:Chrome 缺少系统库(已解决)
现象:
chrome: error while loading shared libraries: libnspr4.so: cannot open shared object file缺失库:libnspr4.so, libnss3.so, libnssutil3.so, libsmime3.so, libasound.so.2
已执行解决方案:
sudo apt-get install -y libnspr4 libnss3 libasound2t64验证: 安装后 Chrome 可直接运行,无需 LD_LIBRARY_PATH:
$ /home/.../chrome --versionGoogle Chrome for Testing 147.0.7727.57问题 2:Headless 模式的网站兼容性
现象: 部分网站(如百度)在 headless 模式下布局不同,元素不可交互
影响: 表单填写、按钮点击等交互功能可能受限
解决方案:
使用 --headless=new(Chrome 新 headless 模式) 改善兼容性或通过 WSLg 使用有 GUI 的 Chrome(需安装完整 Chrome 浏览器)
问题 3:MCP 工具会话重启需求
现象: 重新配置 MCP 服务器后,当前会话中的 MCP 工具不可用
影响: 需要重启 Claude Code 会话才能使用新配置的 MCP 工具
解决方案: 修改 MCP 配置后执行 /exit 并重新启动 Claude Code 会话
问题 4:端口冲突
现象: 9222 端口偶尔出现 Address already in use 错误
解决方案: 使用非标准端口(如 9444),或等待端口释放后重试
6. Chrome DevTools MCP 适用性总结
当前环境适合使用 Chrome DevTools MCP 的场景
--isolated 模式天然适配 | ||
整体评估
Chrome DevTools MCP 在当前 WSL2 环境中完全可用,仅需一步系统依赖安装。
核心结论:
功能层面: 18 项 CDP 核心功能全部通过测试 (100%),涵盖文章提及的所有核心能力 部署层面: 需安装 libnspr4 libnss3 libasound2t64(一次性操作)连接方式: --browserUrl方式是当前环境最佳选择;默认模式在安装依赖后也可用使用模式: Headless 模式适合绝大多数自动化和调试场景 版本兼容: MCP 服务器 v1.1.1 比文章提及的 v0.19.0 更新,功能更丰富
推荐配置
# 1. 安装系统库(一次性,已完成)sudo apt-get install -y libnspr4 libnss3 libasound2t64# 2. 配置 MCP 服务器(推荐 browserUrl 模式)claude mcp add chrome-devtools -- npx -y chrome-devtools-mcp@latest \ --browserUrl http://127.0.0.1:9222# 3. 启动 Chrome 实例(每次使用前)/home/xiuerhuahuazi/.cache/puppeteer/chrome/linux-147.0.7727.57/chrome-linux64/chrome \ --headless --no-sandbox --disable-gpu \ --remote-debugging-port=9222 \ --user-data-dir=/tmp/chrome-debug-profile \ --disable-dev-shm-usage about:blank &# 4. 重启 Claude Code 会话使 MCP 工具生效或使用默认模式(更简单,MCP 自动管理浏览器):
claude mcp add chrome-devtools -- npx -y chrome-devtools-mcp@latest7. web-access 技能测试
7.1 技能概述
web-access 技能是当前环境中的联网操作核心,通过 CDP Proxy 直连用户日常浏览器,天然携带登录态。与 Chrome DevTools MCP(headless 模式,独立实例)形成互补:MCP 适合自动化/CI 场景,web-access 适合需要登录态和真实浏览器环境的日常任务。
7.2 前置检查
$ node check-deps.mjsnode: ok (v24.15.0)browser: ok (port 9222) [通过手动调试端口连接]proxy: connecting...proxy: ready (未知(通过手动调试端口连接))结果: PASS — Node.js、浏览器、CDP Proxy 均就绪
7.3 CDP Proxy 功能测试
通过 curl http://localhost:3456/* 调用 CDP Proxy API:
/targets | ||||
/new?url= | ||||
/info?target= | ||||
/eval?target= | document.title | |||
/eval?target= | ||||
/screenshot?target= | ||||
/navigate?target= | ||||
/eval?target= | ||||
/back?target= | ||||
/scroll?target= | ||||
/new/targets | ||||
/eval?target= | ||||
/click?target= | ||||
/close?target= | ||||
/targets |
7.4 真实网站测试
/eval | ||||
/screenshot | ||||
/eval |
7.5 其他联网工具测试
<title><h1> 正确提取 | ||||
| FAIL |
7.6 web-access 技能测试总结
通过率:24/25 (96%)
核心优势:
直连用户真实浏览器,天然携带登录态,这是与 Chrome DevTools MCP (headless) 的最大差异 CDP Proxy API 设计简洁,通过 HTTP 调用即可完成所有浏览器操作 标签页管理精细,可区分用户已有标签页和技能创建的标签页,操作后自动清理 与 WebSearch/WebFetch/curl 形成工具链,根据场景选择最优工具
当前环境限制:
7.7 小结
web-access 技能通过 CDP Proxy 直连用户浏览器,天然携带登录态,是当前环境日常开发任务的首选方案。与 Chrome DevTools MCP 和 Playwright CLI 互补(详见第 9 章对比表)。
8. Playwright CLI 技能测试
8.1 工具概述
Playwright CLI 是文章提出的"三段式"浏览器自动化范式的核心工具:
核心 Token 节省机制: CLI 将 snapshot 存到磁盘返回文件路径(~315 字节 YAML),MCP 将 snapshot 塞进上下文(~13K Token)。同一任务 CLI 比 MCP 省 4-16 倍。
8.2 安装验证
$ npm i -g @playwright/cli && playwright-cli install --skills✅ Workspace initialized at `/home/xiuerhuahuazi/projects/tmp`✅ Skills installed to `.claude/skills/playwright-cli`✅ Chrome for Testing 149.0.7827.3 downloaded✅ Created default config at .playwright/cli.config.json$ playwright-cli --version0.1.13$ /home/.../chromium-1224/chrome-linux64/chrome --versionGoogle Chrome for Testing 149.0.7827.3结果: PASS — CLI 工具、Chrome 149、Skill 均安装成功
8.3 核心功能测试
open | ||||
goto https://example.com | ||||
snapshot | ||||
click e6 | ||||
eval "document.title" | ||||
go-back | ||||
eval "el => el.textContent" e3 | ||||
fill e36 "Chrome DevTools MCP" | ||||
click e63 | ||||
screenshot | ||||
resize 375 667 | ||||
eval "document.querySelectorAll('a').length" | ||||
eval "document.body.innerText.substring(0,100)" | ||||
open --persistent | ||||
close |
通过率:15/15 (100%)
8.4 Token 节省机制验证
Snapshot 文件写盘 vs 内联:
对比估算: 一个 315 字节的 YAML 快照文件,如果内联到对话中(如 MCP 模式),会消耗约 200-400 Token。10 步任务中每步都内联快照,总计约 2,000-4,000 Token 仅用于页面状态。CLI 模式下,AI 只看到一个文件路径引用,同样的 10 步任务页面状态开销约 100 Token。
验证结论: 文章所述 "CLI 把 snapshot 存到磁盘返回路径;MCP 把 snapshot 塞进你的上下文" 机制完全属实。
8.5 文章关键要点验证
| 已复现 | ||
--persistent | ||
8.6 反爬检测实测
在测试百度搜索时,使用 fill + click 操作触发了百度安全验证(CAPTCHA),页面跳转到 wappass.baidu.com/static/captcha/tuxing_v2.html。
这验证了文章"5 个坑"中第一条:反爬墙迟早会被封。文章建议的对策:
使用 --persistent用真实 Chrome profile点击间加 sleep 单域名不超过 ~30 操作/分钟
在当前 WSL2 headless 环境中,没有真实 Chrome profile 可用,反爬风险更高。
8.7 与文章其他工具的对比定位
文章提供的工具决策矩阵在当前环境中的适用性:
| 完全可用 | ||
9. 综合结论
环境适配评估
当前 WSL2 环境同时支持三种浏览器自动化方案:
sudo apt install libnspr4 libnss3 libasound2t64 | |||
npm i -g @playwright/cli |
三套方案对比
结论: 三者互补而非替代。按场景选择,不必只用一个。
总测试统计
| 总计 | 59 | 57 | 2 | 97% |
2 项失败均为环境限制(Jina 服务不可达、autoConnect 需完整 Chrome),不影响核心功能使用。
推荐工作流
新任务(探索阶段) → Playwright CLI(最省 Token)需登录态的日常任务 → web-access 技能 (CDP Proxy)自动化测试/性能审计 → Chrome DevTools MCP (headless)稳定重复任务(50次+) → Playwright CLI 转 Bash 脚本(0 Token)公开页面信息抓取 → WebFetch / curl / WebSearch三段式范式在当前环境的可行路径
第一步:Playwright CLI 探索 → 记录走通的命令序列第二步:蒸馏为 Skill → 存入 .claude/skills/ → 每次 <100 Token 加载第三步:转为 Bash 脚本 → 上 cron → 0 Token当前环境已具备完整的第一步和第二步能力。第三步需要任务足够稳定后由 AI 生成脚本。
10. 测试环境详情
OS: Linux 6.6.114.1-microsoft-standard-WSL2 (Ubuntu 24.04 Noble)Node.js: v24.15.0npm: 11.12.1Claude Code: 2.1.150Chrome: Puppeteer Chrome 147.0.7727.57 (headless) Playwright Chromium 148.0.7778.96 Playwright CLI Chrome 149.0.7827.3 用户浏览器 (Windows Chrome, via CDP Proxy)MCP Server: chrome-devtools-mcp v1.1.1 (29 tools)CDP Proxy: web-access skill (localhost:3456)Playwright CLI: v0.1.13 + Chrome 149WSLg: Enabled (DISPLAY=:0, WAYLAND_DISPLAY=wayland-0)System Libraries: libnspr4, libnss3, libasound2t64 (apt installed)
夜雨聆风