AgentSkillsCN

browser-testing

自动化浏览器测试、交互自动化以及表单测试。当用户需要测试网页、自动化浏览器交互、填写表单、测试验证、运行多步骤向导,或测试登录/注册流程时,可使用此功能。

SKILL.md
--- frontmatter
name: browser-testing
description: Automated browser testing, interaction automation, and form testing. Use when the user needs to test web pages, automate browser interactions, fill forms, test validation, run multi-step wizards, or test login/signup flows.
allowed-tools: Bash(browser-devtools-cli:*)

Browser Testing Skill

Automated browser testing, interaction automation, and form testing using Browser DevTools CLI.

When to Use

This skill activates when:

  • User asks to test a web page or application
  • User wants to automate browser interactions
  • User needs to verify UI behavior
  • User wants to automate form submission
  • User needs to test form validation
  • User mentions multi-step forms or wizards
  • User wants to test login/signup flows

Capabilities

Navigation

bash
browser-devtools-cli navigation go-to --url "https://example.com"
browser-devtools-cli navigation go-back
browser-devtools-cli navigation go-forward
browser-devtools-cli navigation reload

Interaction

bash
browser-devtools-cli interaction click --selector "#button"
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"

Content Capture

bash
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"

Synchronization

bash
browser-devtools-cli sync wait-for-network-idle

Mocking & Stubbing

bash
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 --all

Code Execution

bash
browser-devtools-cli run js-in-browser --script "document.title"
browser-devtools-cli run js-in-sandbox --code "return await page.title()"

Basic Testing Workflow

  1. Navigate: Go to the page under test
  2. Wait: Ensure page is fully loaded
  3. Interact: Click, fill, scroll as needed
  4. Verify: Check page state, take screenshots
  5. Document: Report results

Form Automation Patterns

Basic Form Fill

bash
# Fill text input
browser-devtools-cli interaction fill \
  --selector "#email" \
  --value "test@example.com"

# Fill password
browser-devtools-cli interaction fill \
  --selector "#password" \
  --value "SecurePass123"

# Click submit
browser-devtools-cli interaction click \
  --selector "button[type=submit]"

Select Dropdown

bash
browser-devtools-cli interaction select \
  --selector "#country" \
  --value "US"

Checkbox/Radio

bash
# Check checkbox
browser-devtools-cli interaction click \
  --selector "#terms-checkbox"

# Select radio option
browser-devtools-cli interaction click \
  --selector "input[name=plan][value=premium]"

Multi-Step Wizard

bash
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 "john@example.com"
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"

Validation Testing

Test Required Fields

bash
# 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"

Test Invalid Input

bash
# 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-Based Testing

bash
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 "test@example.com"

# Verify
browser-devtools-cli $SESSION content take-screenshot --name "after-login"

# Cleanup
browser-devtools-cli session delete my-test

Best Practices

  1. Use sessions for multi-step flows
  2. Wait for network idle after navigation and actions
  3. Take screenshots after important actions for verification
  4. Use specific selectors to avoid wrong elements
  5. Test empty submission first for validation testing
  6. Clear fields before filling (use interaction fill which clears first)
  7. Handle dynamic fields with wait strategies
  8. Screenshot after errors for documentation