Agent skill

Webapp Testing

by warpdotdev in warpdotdev/oz-skills

Test local web applications with Playwright. An agent skill from warpdotdev/oz-skills.

Apache-2.0Auto-check passedTesting & QA

Install Webapp Testing

skills CLI
$ npx skills add warpdotdev/oz-skills --skill webapp-testing -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install warpdotdev/oz-skills webapp-testing --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/warpdotdev/oz-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/webapp-testing .claude/skills/webapp-testing && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
webapp-testing
GitHub stars
825
Token cost
~914 tokens
SKILL.md length
227 words
Files
6 (incl. scripts)
Skills in repo
13
Repo updated
First seen
Licence
Apache-2.0

At a glance

Test local web applications with Playwright. An agent skill from warpdotdev/oz-skills.

  • Works in 3 steps: Inspect rendered DOM → Identify selectors from inspection results → Execute actions using discovered selectors
  • Asked to verify frontend functionality
  • SKILL.md covers Decision Tree: Choosing Your…, Example: Using with_server.py, Reconnaissance-Then-Action… and Common Pitfall, plus 2 more sections
  • Runs Python scripts from its folder; calls python and npm

What it does

Webapp Testing is an agent skill from warpdotdev/oz-skills. Test local web applications with Playwright. Use when asked to verify frontend functionality, debug UI behavior, capture browser screenshots, or inspect browser logs.

Its SKILL.md is about 910 tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including scripts (for example `examples/console_logging.py`, `examples/element_discovery.py` and `examples/static_html_automation.py`).

It sits in Testing & QA, covering Browser testing. It works with Playwright. The licence is Apache-2.0.

When your agent uses it

  • Asked to verify frontend functionality
  • Debug UI behavior
  • Capture browser screenshots
  • Inspect browser logs

Example prompts

  • “/webapp-testing”

Requirements

  • Python 3

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Inspect rendered DOM
  2. Identify selectors from inspection results
  3. Execute actions using discovered selectors

What it can do on your machine

Read from SKILL.md and the folder at commit 6c08c49. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python
    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Webapp Testing loads about 914 tokens when it runs. Until then it costs about 45 tokens; SKILL.md has 227 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~45
When it runs · the whole SKILL.md, loaded when a task matches
~914

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from warpdotdev/oz-skills at commit 6c08c49, republished under its Apache-2.0 licence (© warpdotdev). 227 words, ~914 tokens.

Download SKILL.mdSave it as .claude/skills/webapp-testing/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
webapp-testing
description
Test local web applications with Playwright. Use when asked to verify frontend functionality, debug UI behavior, capture browser screenshots, or inspect browser logs.
license
Complete terms in LICENSE.txt

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 absolutely necessary.

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

Example: Using with_server.py

To start a server, run --help first, then use the helper:

Single server:

bash
python scripts/with_server.py --server "npm run dev" --port 5173 -- python your_automation.py

Multiple servers (e.g., backend + frontend):

bash
python scripts/with_server.py \
  --server "cd backend && python server.py" --port 3000 \
  --server "cd frontend && npm run dev" --port 5173 \
  -- python your_automation.py

To create an automation script, include only Playwright logic (servers are managed automatically):

python
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=True) # Always launch chromium in headless mode
    page = browser.new_page()
    page.goto('http://localhost:5173') # Server already running and ready
    page.wait_for_load_state('networkidle') # CRITICAL: Wait for JS to execute
    # ... your automation logic
    browser.close()

Reconnaissance-Then-Action Pattern

  1. Inspect rendered DOM:

    python
    page.screenshot(path='/tmp/inspect.png', full_page=True)
    content = page.content()
    page.locator('button').all()
  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

© warpdotdev, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 5 other files (scripts) in .agents/skills/webapp-testing of warpdotdev/oz-skills.

  • SKILL.md
  • LICENSE.txt
  • examples/console_logging.py
  • examples/element_discovery.py
  • examples/static_html_automation.py
  • scripts/with_server.py

Open the folder on GitHubat commit 6c08c49

Compare with similar skills

Webapp Testing next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Webapp Testing compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Webapp Testing this skillwarpdotdev/oz-skills825—~914Automated safety check: PassApache-2.0
Web Application Testinganthropics/skills180k51 repos~966Automated safety check: PassApache-2.0
Playwright CLIsanity-io/sanity6.4k18 repos~1.9kAutomated safety check: PassMIT
playwright-cli Browser Automationgithub/gh-aw5.3k23 repos~2.8kAutomated safety check: PassMIT
Write and Verify Playwright Testsappsmithorg/appsmith41k—~2.9kAutomated safety check: NotesApache-2.0
Cucumber and Playwright E2E Testslanggenius/dify158k—~682Automated safety check: PassCustom licence

Similar skills

  • Web Application Testing

    anthropics/skills

    Official

    Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.

    180k GitHub starsUsed in 51 repos~966 tokens
    Testing & QAAuto-check passed
  • Playwright CLI

    sanity-io/sanity

    Official

    Automates browser interactions for web testing, form filling, screenshots, and data extraction.

    6.4k GitHub starsUsed in 18 repos~1.9k tokens
    Testing & QAAuto-check passed
  • Official

    Drives a real browser from the command line with playwright-cli to open pages, interact, mock requests, save state and work with Playwright tests.

    5.3k GitHub starsUsed in 23 repos~2.8k tokens
    Testing & QAAuto-check passed
  • Writes a Playwright end-to-end test from a prompt, runs it against a live Appsmith deployment and retries with fixes up to three times until it passes.

    41k GitHub stars~2.9k tokensUpdated yesterday
    Testing & QAAuto-check: notes
  • Guides changes and reviews of the Cucumber and Playwright end-to-end suite under `e2e/`: feature files, step definitions, support code, tags, locators and assertions.

    158k GitHub stars~682 tokensUpdated today
    Testing & QAAuto-check passed
  • E2E Testing

    langflow-ai/langflow

    Write and review Playwright E2E tests for Langflow. An agent skill from langflow-ai/langflow.

    156k GitHub stars~3.3k tokensUpdated today
    Testing & QAAuto-check passed

More from warpdotdev/oz-skills

All 13 skills in this repo
  • SEO Aeo Audit

    warpdotdev/oz-skills

    Optimize for search engine visibility, ranking, and AI citations.

    825 GitHub stars~4.9k tokensUpdated 1 mo ago
    Auto-check passed
  • Web Accessibility Audit

    warpdotdev/oz-skills

    Audit web applications for WCAG accessibility compliance. An agent skill from warpdotdev/oz-skills.

    825 GitHub stars~3.1k tokensUpdated 1 mo ago
    Auto-check passed
  • GitHub Bug Report Triage

    warpdotdev/oz-skills

    Triage GitHub bug reports for actionability. An agent skill from warpdotdev/oz-skills.

    825 GitHub stars~1.1k tokensUpdated 1 mo ago
    Auto-check passed
  • Analysis Artifacts

    warpdotdev/oz-skills

    Generate reproducible analysis artifacts — SQL queries, Python visualizations, and summary tables — as you work through a BigQuery data analysis.

    825 GitHub stars~1.1k tokensUpdated 1 mo ago
    Auto-check passed
  • CI Fix

    warpdotdev/oz-skills

    Diagnose and fix GitHub Actions CI failures. An agent skill from warpdotdev/oz-skills.

    825 GitHub stars~790 tokensUpdated 1 mo ago
    Auto-check passed
  • Create Pull Request

    warpdotdev/oz-skills

    Create a GitHub pull request following project conventions. An agent skill from warpdotdev/oz-skills.

    825 GitHub stars~2.6k tokensUpdated 1 mo ago
    Auto-check passed

Works with

Categories

Questions about Webapp Testing

What does Webapp Testing do?

Test local web applications with Playwright. An agent skill from warpdotdev/oz-skills. Webapp Testing is an agent skill from warpdotdev/oz-skills. Test local web applications with Playwright.

When should I use Webapp Testing?

Webapp Testing fits situations like: asked to verify frontend functionality; debug UI behavior; capture browser screenshots; inspect browser logs.

How do I install Webapp Testing in Claude Code?

Run `npx skills add warpdotdev/oz-skills --skill webapp-testing -a claude-code`. Or copy the skill folder (.agents/skills/webapp-testing in warpdotdev/oz-skills) into .claude/skills/webapp-testing in your project. Claude Code loads it when a task matches its description.

How do I install Webapp Testing in Codex?

Run `npx skills add warpdotdev/oz-skills --skill webapp-testing -a codex`. Or copy the skill folder (.agents/skills/webapp-testing in warpdotdev/oz-skills) into .agents/skills/webapp-testing in your project. Codex loads it when a task matches its description.

Can I use Webapp Testing in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add warpdotdev/oz-skills --skill webapp-testing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/webapp-testing, .gemini/skills/webapp-testing, .github/skills/webapp-testing and .opencode/skills/webapp-testing in your project.

What does Webapp Testing need to run?

Going by SKILL.md and its folder, Webapp Testing needs Python for the scripts in its folder and the command-line tools its instructions call (python and npm). Our summary lists: Python 3.

Does Webapp Testing access the network?

SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Webapp Testing safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Webapp Testing use?

Webapp Testing is published under the Apache-2.0 licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Webapp Testing use?

About 914 tokens (SKILL.md is roughly 3.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Webapp Testing?

Skills that share tags, products or a category with Webapp Testing: Web Application Testing (anthropics/skills, 180k stars), Playwright CLI (sanity-io/sanity, 6.4k stars), playwright-cli Browser Automation (github/gh-aw, 5.3k stars) and Write and Verify Playwright Tests (appsmithorg/appsmith, 41k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Webapp Testing?

warpdotdev (a GitHub organization) maintains it in warpdotdev/oz-skills, which has 825 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on August 15, 2026.

Source: warpdotdev/oz-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.