| name | agent-browser |
| description | Browser automation and testing using Vercel's agent-browser CLI with ref-based element targeting |
| triggers | ["browser testing","web automation","UI testing","e2e testing","screenshot","form filling","web scraping","page interaction","accessibility testing"] |
Agent Browser Testing Skill
Browser automation and end-to-end testing using Vercel's agent-browser CLI. Uses ref-based element targeting for reliable, AI-friendly browser interaction.
Quick Decision Tree
What do you need?
│
├─ Take a screenshot of a page?
│ └─ agent-browser open [url] && agent-browser screenshot
│
├─ Fill out a form?
│ └─ open → snapshot -i → fill @ref → click @submit → snapshot
│
├─ Test a login flow?
│ └─ See references/authentication.md
│
├─ Run an E2E test?
│ └─ See references/testing-patterns.md
│
├─ Scrape page content?
│ └─ agent-browser open [url] && agent-browser snapshot -i
│
└─ Debug element targeting?
└─ agent-browser snapshot -i --format json
Installation
npm install -g agent-browser
agent-browser install
agent-browser --version
Core Concept: Ref-Based Targeting
Agent-browser uses refs (like @e1, @e2, @e3) to identify interactive elements on the page. These refs are assigned when you take a snapshot.
agent-browser snapshot -i
agent-browser click @e1
agent-browser fill @e2 "user@example.com"
Important: Refs are session-specific and invalidate when the page changes. Always re-snapshot after navigation or DOM updates.
Essential Workflow
agent-browser open https://example.com
agent-browser snapshot -i
agent-browser click @e1
agent-browser fill @e2 "test value"
agent-browser snapshot -i
Common Commands Quick Reference
Navigation
agent-browser open <url>
agent-browser back
agent-browser forward
agent-browser refresh
Snapshots
agent-browser snapshot
agent-browser snapshot -i
agent-browser snapshot --format json
agent-browser screenshot [path]
Interaction
agent-browser click @ref
agent-browser fill @ref "value"
agent-browser select @ref "option"
agent-browser hover @ref
agent-browser press Enter
Semantic Locators
agent-browser find role button "Submit"
agent-browser find text "Welcome"
agent-browser find label "Email"
Waiting
agent-browser wait visible @ref
agent-browser wait hidden @ref
agent-browser wait network
agent-browser wait time 2000
Session Management
agent-browser session save mystate
agent-browser session load mystate
agent-browser session list
agent-browser close
Security Notes
Never commit these files:
*.state - Browser session state files contain cookies
agent-browser-profile/ - Profile directories with credentials
- Screenshots that may contain sensitive data
Add to .gitignore:
*.state
agent-browser-profile/
.agent-browser/
screenshots/
Integration with Other Skills
With Parallel Research
parallel_research.py chat "Find pricing for Acme Corp"
agent-browser open https://acme.com/pricing
agent-browser snapshot -i
With Screenshot Comparison
agent-browser open https://myapp.com
agent-browser screenshot baseline.png
agent-browser screenshot current.png
With Form Data from Sheets
import subprocess
test_data = get_sheet_data("Form Test Cases")
for row in test_data:
subprocess.run(["agent-browser", "fill", "@email", row["email"]])
subprocess.run(["agent-browser", "fill", "@password", row["password"]])
subprocess.run(["agent-browser", "click", "@submit"])
Files in This Skill
references/commands.md - Full command reference
references/authentication.md - Login flow patterns
references/testing-patterns.md - E2E test workflows
references/snapshot-workflow.md - Ref system deep dive
scripts/browser_test.py - Python automation wrapper
Example: Complete Form Test
agent-browser open https://example.com/register
agent-browser snapshot -i
agent-browser fill @e1 "John Doe"
agent-browser fill @e2 "john@example.com"
agent-browser fill @e3 "SecurePass123!"
agent-browser select @e4 "United States"
agent-browser click @e5
agent-browser click @e6
agent-browser wait network
agent-browser snapshot -i
agent-browser screenshot registration-success.png
Troubleshooting
Element not found:
- Re-run
snapshot -i to get fresh refs
- Use semantic locators:
agent-browser find text "Submit"
- Check if element is in an iframe
Page not loading:
- Increase timeout:
agent-browser open <url> --timeout 30000
- Wait for network:
agent-browser wait network
Session expired:
- Save state before tests:
agent-browser session save backup
- Load state to restore:
agent-browser session load backup