webapp-testing

Tests local web applications using Python Playwright scripts with managed server lifecycles.

Updated Jan 9, 2026
One-click install
npx skills add https://github.com/amitpo23/cfo --skill webapp-testing-amitpo23
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: webapp-testing
Source: https://github.com/amitpo23/cfo/tree/main/.cursor/skills/webapp-testing
Command: npx skills add https://github.com/amitpo23/cfo --skill webapp-testing-amitpo23

SYSTEM DOCUMENTATION & REQUIREMENTS

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

What problem does it solve? Verifying frontend behavior of local web applications requires manually starting servers, waiting for readiness, and driving a browser, which is repetitive and error-prone. This Skill automates that workflow with Playwright scripts and a server lifecycle helper. ## Core Features & Use Cases - Server Lifecycle Management: The scripts/with_server.py helper starts one or more servers (e.g., backend plus frontend), waits for port readiness, runs your automation, and cleans up. - Browser Automation Patterns: Guidance for reconnaissance-then-action workflows, including waiting for networkidle, inspecting the rendered DOM, and selecting elements. - Ready-Made Examples: Reference scripts for element discovery, static HTML automation via file:// URLs, and console log capture. - Use Case: You are developing a React app on port 5173 and want to confirm the dashboard renders correctly. The Skill starts the dev server, navigates with headless Chromium, takes a screenshot, and reports discovered buttons and links. ## Quick Start Ask the AI to test your local web app at localhost:5173 by taking a screenshot and listing all buttons on the page.

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 local URL, and wait for networkidle before interacting. Use the with_server.py helper to start your dev server automatically before the script runs.

How do I run Playwright tests that need both a backend and frontend server?

Pass multiple --server and --port pairs to with_server.py, one per server. It starts each server, waits for its port to accept connections, runs your automation command, then terminates all servers.

Why does my Playwright script fail to find elements on a dynamic web app?

The DOM is inspected before JavaScript finishes rendering. Call page.wait_for_load_state('networkidle') after navigation, then take a screenshot or inspect page.content() to discover the actual rendered selectors.

Can Playwright automate static HTML files without a server?

Yes. Build a file:// URL from the absolute path of the HTML file and pass it to page.goto. You can then fill forms, click elements, and capture screenshots without running any server.

How do I capture browser console logs during Playwright automation?

Register a handler with page.on('console', handler) before navigating. Each console message is passed to your callback, where you can print or collect it and save the logs to a file after the browser closes.