ClawShelf
  • Home
  • Skills
  • Starter Kit
  • Pricing
  • FAQ
Sign up
ClawShelf
ClawShelf

The Starter Kit for OpenClaw.

TwitterX (Twitter)Email
Product
  • Home
  • Skills
  • Starter Kit
  • FAQ
Resources
  • Support
Legal
  • Cookie Policy
  • Privacy Policy
  • Terms of Service
  • Refund Policy
Copyright © 2026 ClawShelf. All rights reserved.
Back to marketplace
Free✓ Official
testingFree✓ Official

webapp-testing

Automate local webapp testing and debugging with Playwright scripts that manage servers and capture UI states reliably.

12.4kdownloads·110.3kfavorites
A
by anthropics

About this skill

Stop struggling with flaky UI tests and complex server setups during local development. You verify frontend functionality using Python Playwright scripts that manage server lifecycles, capture screenshots, and debug UI behavior without context clutter. Use this toolkit to enable reliable debugging and interaction testing for your dynamic web applications.

Install in 5 Minutes

Copy the prompt below and paste it into OpenClaw:

Please follow the instructions at https://clawshelf.com/api/skills/anthropics-webapp-testing/install to download and install this skill to the local ~/.openclaw/skills/ directory.

File Preview

Package contents

  • SKILL.md
SKILL.md
---
name: webapp-testing
description: Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing 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 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

```
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 \

Works great with

Reviews

—
0 reviews
5
0
4
0
3
0
2
0
1
0

Sign in to leave a review

No reviews yet. Be the first to review this skill.

$0

One-time purchase · Lifetime updates

100% native OpenClaw / Claude support

Creator
A
anthropics
TypeSkill
Categorytesting
Price$0
Added3/29/2026
LicenseOne-time
Downloads12,435
Favorites110,272
Version1.0.0
Sourcegithub.com
productivity
obsidian

Automate Obsidian vault management by searching, creating, and renaming notes while safely updating internal links.

$0
productivity
slack

Manage Slack channels instantly by sending messages, reacting to posts, and pinning important updates directly from Clawdbot.

$0
development
self-improvement

Capture project learnings and errors to prevent repeated mistakes and enable continuous AI improvement within your workflow.

$0