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
- •Navigate: Go to the page under test
- •Wait: Ensure page is fully loaded
- •Interact: Click, fill, scroll as needed
- •Verify: Check page state, take screenshots
- •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
- •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