webapp-testing · Local Web App Testing

webapp-testing tests local web applications with native Python Playwright scripts: verifying frontend functionality, debugging UI behavior, capturing screenshots, and reading browser logs. A black-box server helper, with_server.py (run --help first), manages server lifecycles including multi-server setups.
Static HTML pages are read directly for selectors; dynamic apps follow recon-then-act — wait for networkidle, screenshot or inspect the DOM, then operate with the discovered selectors.
Example invocation: "Test the frontend on local port 5173 — does the login button work?"
Full brief
Positioning
webapp-testing is the Playwright toolkit for local web applications: native Python Playwright scripts interact with a local app to verify frontend functionality, debug UI behavior, and capture screenshots and logs. Local apps only — no production monitoring.
Core capabilities
- Native Playwright scripts: synchronous API (
sync_playwright()), Chromium headless; descriptive selectors (text=,role=, CSS, IDs); browser closed when done. - Black-box server management:
scripts/with_server.pyowns server lifecycles, including multi-server (backend + frontend) setups; run--helpbefore any script — never read the source first. - Static HTML direct: read the HTML file for selectors and automate;
file://URLs supported. - Recon-then-act for dynamic apps:
wait_for_load_state('networkidle')first, then screenshot/inspect the DOM to discover selectors before acting. - Example library:
examples/covers element discovery, static-page automation, and console-log capture.
Workflow
- Classify: static HTML → read the file for selectors and script; dynamic → next step
- Dynamic: connect if the server is already running; otherwise start it with
with_server.py - Recon: after networkidle, screenshot or inspect the DOM to settle selectors
- Act and collect results (screenshots / logs / assertions)
- Close the browser
Inputs & outputs
| Input | Notes |
|---|---|
| Local app URL or static HTML file | e.g. http://localhost:5173 or a local HTML path |
| Test objective | Feature to verify, bug to reproduce, page to screenshot |
Output: script execution results (screenshot files, console logs, assertion verdicts).
Fit
- Frontend regression checks during local development
- Reproducing UI bugs with console logs for diagnosis
- Pre-release screenshots of key pages
- Interaction testing for dynamic SPAs
Before you start
- No API key; Python + Playwright required (Chromium runs headless).
with_server.pystarts servers when needed — run--helpfor its flags first.- On dynamic apps, DOM inspection must wait for networkidle or selectors will be unreliable.
webapp-testing is part of the Aiglade Skill library. Invoke it from the Aiglade chat box in plain language.