About browser-testing
A browser testing skill for web developers and testers, using Browser DevTools CLI to automate navigation, interactions, and form checks. It also supports capturing page content and mocking or intercepting HTTP requests.
Key features
- 01Browser navigation and interaction
- 02Form filling and validation checks
- 03Screenshots, HTML, text, and PDF capture
- 04HTTP response mocking and interception
- 05Session-based multi-step testing
Use cases
- 01Testing login and signup flows
- 02Checking form validation and wizard steps
- 03Capturing page state after interactions
- 04Testing pages with mocked HTTP responses
MCP support
It uses Browser DevTools CLI to automate browser testing and interactions. The input does not describe an MCP server or client connection.
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ serkan-ozal/ browser-devtools-skills --skill browser-testingAfter installing, type/browser-testingin Claude Code to confirm it loaded.
Details
From the project READMEBrowser 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
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
Interaction
All accept CSS selector or ref (e1, @e1) from ARIA snapshot.
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"
Content Capture
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
browser-devtools-cli sync wait-for-network-idle
Mocking & Stubbing
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
Basic Testing Workflow
- Navigate: Go to the page under test
- Wait: Ensure page is fully loaded
- Snapshot (optional):
a11y take-aria-snapshotto get refs (e1, e2) for stable element targeting - Interact: Click, fill, scroll (use
--selector "e1"for refs or CSS selector) - Verify: Check page state, take screenshots
- Document: Report results
Form Automation Patterns
Basic Form Fill
# 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]"
Select Dropdown
browser-devtools-cli interaction select \
--selector "#country" \
--value "US"
Checkbox/Radio
# 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
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"
Validation Testing
Test Required Fields
# 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
# 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
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
Best Practices
- Use sessions for multi-step flows
- Wait for network idle after navigation and actions
- Take screenshots after important actions for verification
- Use specific selectors to avoid wrong elements
- Test empty submission first for validation testing
- Clear fields before filling (use
interaction fillwhich clears first) - Handle dynamic fields with wait strategies
- Screenshot after errors for documentation
- Batch steps when useful: For long flows,
run execute --code "..."withcallTool()reduces round-trips (see browser-devtools-cli execute reference).
Comments
Markdown supported