MR
Mayur Rathi
@mayurrathi
⭐ 40.7k GitHub stars

Webapp Testing

Webapp Testing is an code AI skill with a core value of Toolkit for interacting with and testing local web applications using Playwright. It helps developers solve real-world problems in the code domain, boosting efficiency, automating repetitive tasks, and optimizing workflows.

Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browse...

Last verified on: 2026-07-07

Quick Facts

Category code
Works With Claude
Source sickn33/antigravity-awesome-skills
Stars ⭐ 40.7k
Last Verified 2026-07-07
Risk Level Low
mkdir -p ./skills/webapp-testing && curl -sfL https://raw.githubusercontent.com/sickn33/antigravity-awesome-skills/main/skills/webapp-testing/SKILL.md -o ./skills/webapp-testing/SKILL.md

Run in terminal / PowerShell. Requires curl (Unix) or PowerShell 5+ (Windows).

Skill Content

# 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


text
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


When to Use

This skill is applicable to execute the workflow or actions described in the overview.

🎯 Best For

  • Debugging engineers
  • QA teams
  • QA engineers
  • Developers writing unit tests
  • UI designers

💡 Use Cases

  • Tracing runtime errors in production logs
  • Identifying memory leaks
  • Generating test cases for edge conditions
  • Writing integration test suites

📖 How to Use This Skill

  1. 1

    Install the Skill

    Copy the install command from the Terminal tab and run it. The SKILL.md file downloads to your local skills directory.

  2. 2

    Load into Your AI Assistant

    Open Claude and reference the skill. Paste the SKILL.md content or use the system prompt tab.

  3. 3

    Apply Webapp Testing to Your Work

    Open your project in the AI assistant and ask it to apply the skill. Start with a small module to verify the output quality.

  4. 4

    Review and Refine

    Review AI suggestions before committing. Run tests, check for regressions, and iterate on the skill output.

❓ Frequently Asked Questions

Can this debug production issues?

Yes, but always ensure you have proper logging and monitoring in place first.

Does this generate test mocks?

Many testing skills include mock generation. Check the install command and skill content for details.

Does this work with Figma?

Some design skills integrate with Figma plugins. Check the Works With section for supported tools.

Is Webapp Testing compatible with Cursor and VS Code?

Yes — this skill works with any AI coding assistant including Cursor, VS Code with Copilot, and JetBrains IDEs.

Do I need specific dependencies for Webapp Testing?

Check the install command and Works With section. Most code skills only require the AI assistant and your codebase.

⚠️ Common Mistakes to Avoid

Debugging without context

Always provide the full error stack and surrounding code context for accurate debugging.

Not testing edge cases

AI tends to generate happy-path tests. Manually review for boundary conditions.

Skipping usability testing

AI-generated designs should be validated with real users before development.

Skipping validation

Always test AI-generated code changes, even for simple refactors.

🔗 Related Skills