mcpField
B
browser-devtools-cli

browser-devtools-cli

github.com/serkan-ozal测试与质量755 次安装34 周前更新
代码仓库

关于 browser-devtools-cli

面向浏览器自动化、调试和测试的 Playwright 命令行工具,适用于开发者和 AI Agent。它按领域组织导航、交互、内容提取、可访问性及调试等工具,并支持会话管理和批量执行。

主要功能

  1. 01自动化浏览器导航与交互
  2. 02提取文本、HTML、PDF 和截图
  3. 03检查可访问性与 Web 指标
  4. 04调试页面并模拟 HTTP 响应
  5. 05管理会话及后台守护进程
  6. 06批量执行 JavaScript 和工具调用

适用场景

  1. 01自动化测试网页表单流程
  2. 02采集页面内容或截图
  3. 03检查性能指标与控制台消息
  4. 04模拟 API 响应并调试网页

MCP 相关

README 说明 execute 功能同时可通过 CLI 和 MCP 使用。它可运行 JavaScript 并批量调用工具。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/serkan-ozal/browser-devtools-skills --skill browser-devtools-cli

安装后在 Claude Code 中输入/browser-devtools-cli确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
a11y.md
content.md
debug.md
execute.md
figma.md
interaction.md
navigation.md
o11y.md
react.md
stub.md
sync.md

详细介绍

浏览器 DevTools CLI

使用 Playwright 进行浏览器自动化、调试和测试的命令行界面。此 CLI 面向浏览器平台;如需调试 Node.js 后端,请使用 node-devtools-cli(参见 node-devtools-cli 技能)。

安装

npm install -g browser-devtools-mcp

快速入门

# Navigate to a URL
browser-devtools-cli navigation go-to --url "https://example.com"

# Take a screenshot
browser-devtools-cli content take-screenshot --name "homepage"

# Get page content as text
browser-devtools-cli content get-as-text

基于 ref 的工作流(推荐用于 AI Agent):先调用 a11y take-aria-snapshot 获取 refs(e1、e2、……),然后在 interaction click --selector "e1" 中使用 refs,或使用 content take-screenshot --annotate 获取带编号的元素标签。

全局选项

选项描述默认值
--port <number>守护进程服务端口2020
--session-id <string>用于持久化浏览器状态的会话 ID自动
--json以 JSON 格式输出结果(推荐用于 AI)false
--quiet禁止显示日志消息false
--verbose启用调试输出false
--timeout <ms>操作超时时间30000
--headless以无头模式运行浏览器true
--no-headless在可见窗口中运行浏览器-
--persistent保留 cookies/localStoragefalse
--no-persistent在会话结束时清除状态-
--user-data-dir <path>浏览器用户数据目录OS 临时目录
--use-system-browser使用系统 Chromefalse
--browser-path <path>自定义浏览器路径自动

AI Agent 推荐选项:

# JSON output for parsing, quiet mode for clean output, session for state persistence
browser-devtools-cli --json --quiet --session-id "my-session" <command>

工具域

CLI 提供按域组织的工具:

域描述参考
navigation页面导航(跳转、后退、前进、重新加载)
content内容提取(屏幕截图、PDF、HTML、文本)
interaction用户交互(点击、填写、悬停、滚动)
a11y无障碍快照(ARIA、AX 树)
o11y可观测性(Web Vitals、控制台、HTTP、跟踪)
debug非阻塞调试(跟踪点、日志点、异常)
stubHTTP 模拟(拦截、模拟、清除)
sync同步(等待网络空闲)
reactReact DevTools 集成
figmaFigma 设计比较
execute批量执行 JavaScript(运行 execute;VM 中有 page、callTool)

Execute 同时支持 CLI 和 MCP。可用它运行 JavaScript 并批量调用工具:CLI 使用 run execute --code "<js>"(可选 --timeout-ms);MCP 工具 execute 使用相同参数。在 VM 中:page(仅限浏览器)— Playwright Page;可使用 await page.title()、await page.evaluate(...) 等。callTool(name, input, returnOutput?) — 调用任意工具;始终使用 await;name 使用下划线形式(例如 'navigation_go-to');input 是一个对象(键使用 camelCase);returnOutput: true 会将结果添加到响应的 toolOutputs 中。完整绑定和参数请参见 execute 参考。

CLI 管理命令

守护进程管理
browser-devtools-cli daemon status      # Check daemon status
browser-devtools-cli daemon info        # Show daemon info (version, uptime, sessions)
browser-devtools-cli daemon start       # Start daemon
browser-devtools-cli daemon stop        # Stop daemon
browser-devtools-cli daemon restart     # Restart daemon
会话管理
browser-devtools-cli session list                  # List active sessions
browser-devtools-cli session info <session-id>     # Show session details
browser-devtools-cli session delete <session-id>   # Delete a session
工具发现
browser-devtools-cli tools list              # List all available tools
browser-devtools-cli tools search <query>    # Search tools by name or description
browser-devtools-cli tools info <tool-name>  # Show tool details and parameters
配置
browser-devtools-cli config    # Show current configuration
更新
browser-devtools-cli update --check   # Check for updates
browser-devtools-cli update           # Check and install updates

示例

基本导航和屏幕截图
# Navigate to URL
browser-devtools-cli navigation go-to --url "https://example.com"

# Take screenshot
browser-devtools-cli content take-screenshot --name "homepage"

# Get page text
browser-devtools-cli content get-as-text
表单自动化
# Use same session for state persistence
SESSION="--session-id login-test"

# Navigate to login page
browser-devtools-cli $SESSION navigation go-to --url "https://app.example.com/login"

# Fill form fields
browser-devtools-cli $SESSION interaction fill --selector "#email" --value "[email protected]"
browser-devtools-cli $SESSION interaction fill --selector "#password" --value "password123"

# Submit form
browser-devtools-cli $SESSION interaction click --selector "button[type=submit]"

# Wait for navigation
browser-devtools-cli $SESSION sync wait-for-network-idle

# Capture result
browser-devtools-cli $SESSION content take-screenshot --name "dashboard"
性能分析
# Navigate
browser-devtools-cli navigation go-to --url "https://example.com"

# Get Web Vitals metrics
browser-devtools-cli --json o11y get-web-vitals

# Check console for errors
browser-devtools-cli --json o11y get-console-messages --type warning

# Analyze HTTP requests
browser-devtools-cli --json o11y get-http-requests
无障碍审计
# Navigate
browser-devtools-cli navigation go-to --url "https://example.com"

# Get ARIA snapshot
browser-devtools-cli a11y take-aria-snapshot

# Get detailed AX tree
browser-devtools-cli --json a11y take-ax-tree-snapshot --roles button,link,textbox
批量执行(execute)
# Run JavaScript in session VM (page + callTool available)
browser-devtools-cli run execute --code "return await page.title();"

# Batch multiple tools in one call (fewer round-trips)
browser-devtools-cli run execute --code "await callTool('a11y_take-aria-snapshot', {}, true); await callTool('content_take-screenshot', {}, true);"
API 模拟
# Mock API response
browser-devtools-cli stub mock-http-response \
  --pattern "**/api/users" \
  --body '[{"id": 1, "name": "Test User"}]'

# Navigate and test
browser-devtools-cli navigation go-to --url "https://app.example.com"

# Clear mocks
browser-devtools-cli stub clear
非阻塞调试
SESSION="--session-id debug-session"

# Navigate to app
browser-devtools-cli $SESSION navigation go-to --url "http://localhost:3000"

# Set tracepoint on a function
browser-devtools-cli $SESSION debug put-tracepoint \
  --url-pattern "app.js" \
  --line-number 42

# Add watch expression
browser-devtools-cli $SESSION debug add-watch --expression "this"

# Enable exception catching
browser-devtools-cli $SESSION debug put-exceptionpoint --state uncaught

# Interact with app (triggers probes)
browser-devtools-cli $SESSION interaction click --selector "#submit-btn"

# Get captured snapshots
browser-devtools-cli $SESSION --json debug get-probe-snapshots
browser-devtools-cli $SESSION --json debug get-probe-snapshots --types tracepoint,exceptionpoint
用于 CI/CD 的 Shell 脚本
#!/bin/bash
set -e

CLI="browser-devtools-cli --json --quiet --session-id ci-test-$$"

# Navigate
$CLI navigation go-to --url "https://example.com"

# Wait for load
$CLI sync wait-for-network-idle

# Take screenshot
$CLI content take-screenshot --name "ci-test"

# Get Web Vitals
VITALS=$($CLI o11y get-web-vitals)
echo "Web Vitals: $VITALS"

# Check for console errors
ERRORS=$($CLI o11y get-console-messages --type error)
if [ "$ERRORS" != "[]" ]; then
  echo "Console errors found: $ERRORS"
  exit 1
fi

# Cleanup
$CLI session delete "ci-test-$$"

交互模式(面向人类用户)

手动探索时,可使用交互式 REPL 模式:

browser-devtools-cli interactive
browser-devtools-cli --no-headless interactive   # With visible browser
命令描述
help显示可用命令
exit、quit退出交互模式
<domain> <tool>执行工具

Shell 补全

# Bash
browser-devtools-cli completion bash
echo 'eval "$(browser-devtools-cli completion bash)"' >> ~/.bashrc

# Zsh
browser-devtools-cli completion zsh
echo 'eval "$(browser-devtools-cli completion zsh)"' >> ~/.zshrc

评论

支持 Markdown