关于 browser-testing
面向网页开发者和测试人员的浏览器测试技能,通过 Browser DevTools CLI 自动执行导航、交互和表单检查。还可捕获页面内容,并模拟或拦截 HTTP 请求。
主要功能
- 01浏览器导航与交互
- 02填写表单并检查验证
- 03捕获截图、HTML、文本和 PDF
- 04模拟与拦截 HTTP 响应
- 05基于会话进行多步测试
适用场景
- 01测试登录和注册流程
- 02检查表单验证与向导步骤
- 03捕获交互后的页面状态
- 04使用模拟 HTTP 响应测试页面
MCP 相关
它使用 Browser DevTools CLI 自动化浏览器测试和交互。输入未说明 MCP 服务或客户端连接。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ serkan-ozal/ browser-devtools-skills --skill browser-testing安装后在 Claude Code 中输入/browser-testing确认已加载。
详细介绍
浏览器测试技能
使用 Browser DevTools CLI 进行自动化浏览器测试、交互自动化和表单测试。
适用场景
当用户:
- 要求测试网页或应用程序时
- 希望自动执行浏览器交互时
- 需要验证 UI 行为时
- 希望自动提交表单时
- 需要测试表单验证时
- 提到多步表单或向导时
- 希望测试登录/注册流程时
功能
导航
browser-devtools-cli navigation go-to --url "https://example.com"
browser-devtools-cli navigation go-back-or-forward --direction back
browser-devtools-cli navigation go-back-or-forward --direction forward
browser-devtools-cli navigation reload
交互
所有命令均接受 CSS 选择器或 ARIA 快照中的 ref(e1、@e1)。
browser-devtools-cli interaction click --selector "#button"
browser-devtools-cli interaction click --selector "e1" # ref from a11y take-aria-snapshot
browser-devtools-cli interaction fill --selector "#input" --value "text"
browser-devtools-cli interaction select --selector "#dropdown" --value "option"
browser-devtools-cli interaction hover --selector "#element"
browser-devtools-cli interaction press-key --key "Enter"
browser-devtools-cli interaction scroll --mode bottom
browser-devtools-cli interaction drag --source-selector "#drag" --target-selector "#drop"
内容捕获
browser-devtools-cli content take-screenshot --name "screenshot"
browser-devtools-cli content get-as-html
browser-devtools-cli content get-as-text
browser-devtools-cli content save-as-pdf --name "page"
同步
browser-devtools-cli sync wait-for-network-idle
模拟与桩
browser-devtools-cli stub mock-http-response --pattern "**/api/**" --response '{"status":200}'
browser-devtools-cli stub intercept-http-request --pattern "**/api/**" --modifications '{"headers":{}}'
browser-devtools-cli stub list
browser-devtools-cli stub clear
基本测试工作流
- 导航:前往待测试页面
- 等待:确保页面已完全加载
- 快照(可选):运行
a11y take-aria-snapshot,获取用于稳定定位元素的 ref(e1、e2) - 交互:点击、填写、滚动(对 ref 使用
--selector "e1",也可使用 CSS 选择器) - 验证:检查页面状态并截取屏幕截图
- 记录:报告结果
表单自动化模式
填写基本表单
# Fill text input
browser-devtools-cli interaction fill \
--selector "#email" \
--value "[email protected]"
# Fill password
browser-devtools-cli interaction fill \
--selector "#password" \
--value "SecurePass123"
# Click submit
browser-devtools-cli interaction click \
--selector "button[type=submit]"
选择下拉选项
browser-devtools-cli interaction select \
--selector "#country" \
--value "US"
复选框/单选按钮
# Check checkbox
browser-devtools-cli interaction click \
--selector "#terms-checkbox"
# Select radio option
browser-devtools-cli interaction click \
--selector "input[name=plan][value=premium]"
多步向导
SESSION="--session-id wizard-test"
# Step 1: Personal Info
browser-devtools-cli $SESSION interaction fill --selector "#name" --value "John Doe"
browser-devtools-cli $SESSION interaction fill --selector "#email" --value "[email protected]"
browser-devtools-cli $SESSION interaction click --selector "#next-step"
# Wait for step 2
browser-devtools-cli $SESSION sync wait-for-network-idle
# Step 2: Address
browser-devtools-cli $SESSION interaction fill --selector "#address" --value "123 Main St"
browser-devtools-cli $SESSION interaction select --selector "#state" --value "CA"
browser-devtools-cli $SESSION interaction click --selector "#next-step"
# Step 3: Confirm
browser-devtools-cli $SESSION sync wait-for-network-idle
browser-devtools-cli $SESSION interaction click --selector "#submit"
验证测试
测试必填字段
# Submit empty form
browser-devtools-cli interaction click --selector "button[type=submit]"
# Check for error messages
browser-devtools-cli content get-as-text --selector ".error-message"
测试无效输入
# Invalid email
browser-devtools-cli interaction fill --selector "#email" --value "not-an-email"
browser-devtools-cli interaction click --selector "button[type=submit]"
# Check validation error
browser-devtools-cli content get-as-html --selector ".email-error"
基于会话的测试
SESSION="--session-id my-test"
# Navigate
browser-devtools-cli $SESSION navigation go-to --url "https://example.com"
# Interact
browser-devtools-cli $SESSION interaction click --selector ".login-btn"
browser-devtools-cli $SESSION interaction fill --selector "#email" --value "[email protected]"
# Verify
browser-devtools-cli $SESSION content take-screenshot --name "after-login"
# Cleanup
browser-devtools-cli session delete my-test
最佳实践
- 多步流程使用会话
- 导航和操作后等待网络空闲
- 重要操作后截取屏幕截图以便验证
- 使用具体的选择器,避免选错元素
- 测试验证时先尝试提交空表单
- 填写前清空字段(使用会先清空字段的
interaction fill) - 使用等待策略处理动态字段
- 出错后截取屏幕截图以供记录
- 适时批量执行步骤:对于较长的流程,使用
run execute --code "..."和callTool()可减少往返次数(参见 browser-devtools-cli execute 参考文档)。
评论
支持 Markdown