webapp-testing

Tests local web applications using Python Playwright scripts with server lifecycle management.

Updated Mar 27, 2026
One-click install
npx skills add https://github.com/gmackie/agent-skills --skill webapp-testing-gmackie
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: webapp-testing
Source: https://github.com/gmackie/agent-skills/tree/main/skills/webapp-testing
Command: npx skills add https://github.com/gmackie/agent-skills --skill webapp-testing-gmackie

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires playwright, and includes scripts (resource) components.

What problem does it solve? Testing and debugging local web applications requires manually starting servers, waiting for them to be ready, and writing browser automation from scratch, which is repetitive and error-prone. ## Core Features & Use Cases - Server Lifecycle Management: The with_server.py helper starts one or more servers, waits for port readiness, runs your automation, and cleans up afterward. - Playwright Browser Automation: Write native Python Playwright scripts to verify frontend functionality, capture screenshots, inspect the DOM, and view browser console logs. - Reconnaissance-then-Action Pattern: Navigate dynamic apps, wait for networkidle, inspect the rendered state, then act on discovered selectors. - Use Case: You have a React frontend on port 5173 and a Python backend on port 3000. Use the helper to launch both, then run a Playwright script that logs in, clicks through the dashboard, and captures a screenshot for verification. ## Quick Start Use the webapp-testing skill to start my dev server and verify the login form works with Playwright.

Frequently Asked Questions about webapp-testing

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I test a local web application with Playwright?▼

Write a Python script using sync_playwright, launch Chromium in headless mode, navigate to your localhost URL, and wait for networkidle before interacting. Use the with_server.py helper to start your dev server automatically before the script runs.

How to run Playwright tests against multiple servers at once?▼

Pass repeated --server and --port flags to with_server.py for each backend and frontend process. The script starts each server, polls its port until ready, runs your automation command, then terminates all servers cleanly.

Why does Playwright find no elements on my dynamic webapp?▼

Inspecting the DOM before JavaScript finishes executing returns incomplete results. Always call page.wait_for_load_state('networkidle') after navigation, then take a screenshot or read page.content() to identify selectors from the rendered state.

Can Playwright automate static HTML files without a server?▼

Yes, Playwright supports file:// URLs for local HTML files. Read the HTML directly to identify selectors, then navigate with page.goto using the absolute file path and interact with elements normally.

How do I capture browser console logs during automation?▼

Register a handler with page.on('console', handler) before navigating. Each console message is passed to your callback, where you can print or save the message type and text to a log file.