webapp-testing
Toolkit for interacting with and testing local web applications using Playwright.
Skill by stevengonsalvez
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/stevengonsalvez-webapp-testing
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, frontend, testing, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions: not checked yet.
What's inside
- Skill name
webapp-testing- Description
- Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
- License
- MIT
- Instructions
- 528 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Agent Skills spec issues
- body: 528 lines (spec recommends under 500)
Files (13)
- LICENSE.txt
- SKILL.md
- console_logging.py · examples/
- element_discovery.py · examples/
- multi_step_registration.py · examples/
- static_html_automation.py · examples/
- with_server.py · scripts/
- browser_config.py · utils/
- form_helpers.py · utils/
- smart_selectors.py · utils/
- supabase.py · utils/
- ui_interactions.py · utils/
- wait_strategies.py · utils/
SKILL.md (first lines)
# Web Application Testing
To test local web applications, write native Python Playwright scripts.
**Helper Scripts Available**:
- `scripts/with_server.py` - Manages server lifecycle (supports multiple servers)
**Always run scripts with `--help` first** to see usage. DO NOT read the source until you try running the script first and find that a customized solution is abslutely necessary. These scripts can be very large and thus pollute your context window. They exist to be called directly as black-box scripts rather than ingested into your context window.
## Browser Tools (Direct Chrome DevTools Control)
The `{{HOME_TOOL_DIR}}/skills/webapp-testing/bin/browser-tools` utility provides lightweight, context-rot-proof browser automation using the Chrome DevTools Protocol directly (no MCP overhead).
**Available Commands**:
```bash
# Launch browser and get connection details
/.claude/skills/webapp-testing/bin/browser-tools start [--port PORT] [--headless]
# Navigate to URL
/.claude/skills/webapp-testing/bin/browser-tools nav <url> [--wait-for {load|networkidle|domcontentloaded}]
# Evaluate JavaScript
/.claude/skills/webapp-testing/bin/browser-tools eval "<javascript code>"
# Take screenshot
/.claude/skills/webapp-testing/bin/browser-tools screenshot <output.png> [--full-page] [--selector CSS_SELECTOR]
# Interactive element picker (returns selectors)
/.claude/skills/webapp-testing/bin/browser-tools pick
# Get console logs
/.claude/skills/webapp-testing/bin/browser-tools console [--level {log|warn|error|all}]
# Search page content
/.claude/skills/webapp-testing/bin/browser-tools search "<query>" [--case-sensitive]
# Extract page content (markdown, links, text)
/.claude/skills/webapp-testing/bin/browser-tools content [--format {markdown|links|text}]
# Get/set cookies
/.claude/skills/webapp-testing/bin/browser-tools cookies [--set NAME=VALUE] [--domain DOMAIN]
# Inspect element details
/.claude/skills/webapp-testing/bin/browser-tools inspect <css-selector>
# Terminate browser session
/.claude/skills/webapp-testing/bin/browser-tools kill
```
**When to Use Browser-Tools vs Playwright**:
✅ **Use browser-tools when**:
- Quick inspection/debugging of running apps
- Need to identify selectors interactively (`pick` command)
- Extracting page content for analysis
- Running simple JavaScript snippets
- Monitoring console logs in real-time
- Taking quick screenshots without writing scripts
✅ **Use Playwright when**:
- Complex multi-step automation workflows
- Need full test assertion framework
- Handling multi-step forms
- Database integration (Supabase utilities)
- Comprehensive test coverage
- Generating test reports
**Example Workflow**:
```bash
# 1. Start browser pointed at your app
/.claude/skills/webapp-testing/bin/browser-tools start --port 9222
# 2. Navigate to the page
/.claude/skills/webapp-testing/bin/browser-tools nav http://localhost:3000
# 3. Use interactive picker to find selectors
/.claude/skills/webapp-testing/bin/browser-tools pick
# Click on elements in the browser, get their selectors
# 4. Inspect specific elements
/.claude/skills/webapp-testing/bin/browser-tools inspect "button.submit"
# 5. Take screenshot for documentation
/.claude/skills/webapp-testing/bin/browser-tools screenshot /tmp/page.png --full-page
# 6. Check console for errors
/.claude/skills/webapp-testing/bin/browser-tools console --level error
# 7. Clean up
/.claude/skills/webapp-testing/bin/browser-tools kill
```
**Benefits**:
- **No MCP overhead**: Direct Chrome DevTools Protocol communication
- **Context-rot proof**: No dependency on evolving MCP specifications
- **Interactive picker**: Visual element selection for selector discovery
- **Lightweight**: Faster than full Playwright for simple tasks
- **Pre-compiled binary**: Ready to use, no compilation needed (auto-compiled via create-rule.js)
## Decision Tree: Choosing Your Approach
```
User task → Is it static HTML?
├─ Yes → Read HTML file directly to identify selectors
│ ├─ Success → Write Playwright script using selectors
│ └─ Fails/Incomplete → Treat as dynamic (below)
│
└─ No (dynamic webapp) → Is the server already running?
├─ No → Run: python scripts/with_server.py --help
│ Then use the helper + write simplified Playwright script
│
└─ Yes → Reconnaissance-then-action:
1. Navigate and wait for networkidle
2. Take screenshot or inspect DOM
3. Identify selectors from rendered state
4. Execute actions with discovered selectors
```From stevengonsalvez/ainb-toolkit, MIT.
More from stevengonsalvez/ainb-toolkit
- 0.592score
export
stevengonsalvez
Turn a finished demo into what people see outside a video player - a README bundle (a looping GIF, an animated WebP and a poster PNG plus a ready `<picture>`…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
brag
stevengonsalvez
Turn the project in the current directory into a short, shareable launch video, by delegating to the upstream brag skill.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
illustration:popa
stevengonsalvez
Generate intricate hand-drawn sketchnote illustrations starring Popa, a cute pink blob with a green sprout and a notepad, on soft pastel scenes.
SkillAFreshness: A★ 1Claude Code +9 - 0.583score
capture
stevengonsalvez
Film a real web app, logged in or public, SPA or multi-page, as clean re-recordable product footage.
SkillAFreshness: A★ 1Claude Code +9 - 0.582score
illustration
stevengonsalvez
Generate intricate hand-drawn sketchnote illustrations starring Popa (a pink blob with a green sprout and a notepad).
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
agytoggle
stevengonsalvez
Multi-account credential manager and profile switcher for the Antigravity CLI (agy).
SkillAFreshness: A★ 1Claude Code +9 - 0.579score
compose
stevengonsalvez
Turn captured product footage into a finished demo video - a 1440p60 master with the app in a framed window on a themed backdrop, a feathered spotlight that…
SkillAFreshness: A★ 1Claude Code +9 - 0.557score
test-writer-fixer
stevengonsalvez
Write tests for code that has none, and repair tests that broke, without weakening what they check.
SkillAFreshness: A★ 1Claude Code +9 - 0.552score
godmode
stevengonsalvez
Autonomous product factory.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
adopt
stevengonsalvez
Index the agent lanes that already exist into a programme's lanes.jsonl, reading each terminal to classify it and its context use.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
discover
stevengonsalvez
List the Orca environments, hosts, worktrees and terminals a programme could use, and say which environments are unreachable.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
retire
stevengonsalvez
Remove a finished lane's worktree through Orca, only once it is merged, clean and idle.
SkillBFreshness: B★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 1
- Open issues
- 4
- Last commit (this folder)
- Sep 4, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/stevengonsalvez/ainb-toolkit
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from stevengonsalvez
- 0.592score
export
stevengonsalvez
Turn a finished demo into what people see outside a video player - a README bundle (a looping GIF, an animated WebP and a poster PNG plus a ready `<picture>`…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
brag
stevengonsalvez
Turn the project in the current directory into a short, shareable launch video, by delegating to the upstream brag skill.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
illustration:popa
stevengonsalvez
Generate intricate hand-drawn sketchnote illustrations starring Popa, a cute pink blob with a green sprout and a notepad, on soft pastel scenes.
SkillAFreshness: A★ 1Claude Code +9 - 0.583score
capture
stevengonsalvez
Film a real web app, logged in or public, SPA or multi-page, as clean re-recordable product footage.
SkillAFreshness: A★ 1Claude Code +9 - 0.582score
illustration
stevengonsalvez
Generate intricate hand-drawn sketchnote illustrations starring Popa (a pink blob with a green sprout and a notepad).
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
agytoggle
stevengonsalvez
Multi-account credential manager and profile switcher for the Antigravity CLI (agy).
SkillAFreshness: A★ 1Claude Code +9
Cite this page
webapp-testing skill. Agent Mart. https://agentmart.dev/skills/stevengonsalvez-webapp-testing (last updated 2026-10-24)