webapp-testing
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.
By composio-community · 600 installs
npx skills add composio-community/awesome-codex-skills --skill webapp-testing
Source repository · Upstream listing
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.
Decision Tree: Choosing Your Approach
Example: Using with server.py
To start a server, run help first, then use the helper:
Single server:
Multiple servers (e.g., backend + frontend):
To create an automation script, include only Playwright logic (servers are managed automatically):
Reconnaissance Then Action Pattern
1. Inspect rendered DOM :
2. Identify selectors from inspection results
3. Execute actions using discovered selectors
Common Pitfall
❌ Don't inspect the DOM before waiting for networkidle on dynamic apps
✅ Do wait for page.wait for load state('networkidle') before inspection
Best Practices
Use bundled scripts as black boxes To accomplish a task, consider whether one of the scripts available in scripts/ can help. These scripts handle common, complex workflows reliably without cluttering the context window. Use help to see usage, then invoke directly.
Use sync playwright() for synchronous scripts
Always close the browser when done
Use descriptive selectors: text= , role= , CSS selectors, or IDs
Add appropriate waits: page.wait for selector() or page.wait for timeout()
Reference Files
examples/ Examples showing common patterns:
element discovery.py Discovering buttons, links, and inputs on a page
static html automation.py Using file:// URLs for local HTML
console logging.py Capturing console logs during automation