Claude-skills playwright-pro
Production-grade Playwright testing toolkit. Use when the user mentions Playwright tests, end-to-end testing, browser automation, fixing flaky tests, test migration, CI/CD testing, or test suites. Generate tests, fix flaky failures, migrate from Cypress/Selenium, sync with TestRail, run on BrowserStack. 55 templates, 3 agents, smart reporting.
install
source · Clone the upstream repo
git clone https://github.com/alirezarezvani/claude-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/alirezarezvani/claude-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.gemini/skills/playwright-pro" ~/.claude/skills/alirezarezvani-claude-skills-playwright-pro && rm -rf "$T"
manifest:
.gemini/skills/playwright-pro/SKILL.mdsource content
Playwright Pro
Production-grade Playwright testing toolkit for AI coding agents.
Available Commands
When installed as a Claude Code plugin, these are available as
/pw: commands:
| Command | What it does |
|---|---|
| Set up Playwright — detects framework, generates config, CI, first test |
| Generate tests from user story, URL, or component |
| Review tests for anti-patterns and coverage gaps |
| Diagnose and fix failing or flaky tests |
| Migrate from Cypress or Selenium to Playwright |
| Analyze what's tested vs. what's missing |
| Sync with TestRail — read cases, push results |
| Run on BrowserStack, pull cross-browser reports |
| Generate test report in your preferred format |
Quick Start Workflow
The recommended sequence for most projects:
1. /pw:init → scaffolds config, CI pipeline, and a first smoke test 2. /pw:generate → generates tests from your spec or URL 3. /pw:review → validates quality and flags anti-patterns ← always run after generate 4. /pw:fix <test> → diagnoses and repairs any failing/flaky tests ← run when CI turns red
Validation checkpoints:
- After
— always run/pw:generate
before committing; it catches locator anti-patterns and missing assertions automatically./pw:review - After
— re-run the full suite locally (/pw:fix
) to confirm the fix doesn't introduce regressions.npx playwright test - After
— run/pw:migrate
to confirm parity with the old suite before decommissioning Cypress/Selenium tests./pw:coverage
Example: Generate → Review → Fix
# 1. Generate tests from a user story /pw:generate "As a user I can log in with email and password" # Generated: tests/auth/login.spec.ts # → Playwright Pro creates the file using the auth template. # 2. Review the generated tests /pw:review tests/auth/login.spec.ts # → Flags: one test used page.locator('input[type=password]') — suggests getByLabel('Password') # → Fix applied automatically. # 3. Run locally to confirm npx playwright test tests/auth/login.spec.ts --headed # 4. If a test is flaky in CI, diagnose it /pw:fix tests/auth/login.spec.ts # → Identifies missing web-first assertion; replaces waitForTimeout(2000) with expect(locator).toBeVisible()
Golden Rules
over CSS/XPath — resilient to markup changesgetByRole()- Never
— use web-first assertionspage.waitForTimeout()
auto-retries;expect(locator)
does notexpect(await locator.textContent())- Isolate every test — no shared state between tests
in config — zero hardcoded URLsbaseURL- Retries:
in CI,2
locally0 - Traces:
— rich debugging without slowdown'on-first-retry' - Fixtures over globals —
for shared statetest.extend() - One behavior per test — multiple related assertions are fine
- Mock external services only — never mock your own app
Locator Priority
1. getByRole() — buttons, links, headings, form elements 2. getByLabel() — form fields with labels 3. getByText() — non-interactive text 4. getByPlaceholder() — inputs with placeholder 5. getByTestId() — when no semantic option exists 6. page.locator() — CSS/XPath as last resort
What's Included
- 9 skills with detailed step-by-step instructions
- 3 specialized agents: test-architect, test-debugger, migration-planner
- 55 test templates: auth, CRUD, checkout, search, forms, dashboard, settings, onboarding, notifications, API, accessibility
- 2 MCP servers (TypeScript): TestRail and BrowserStack integrations
- Smart hooks: auto-validate test quality, auto-detect Playwright projects
- 6 reference docs: golden rules, locators, assertions, fixtures, pitfalls, flaky tests
- Migration guides: Cypress and Selenium mapping tables
Integration Setup
TestRail (Optional)
export TESTRAIL_URL="https://your-instance.testrail.io" export TESTRAIL_USER="your@email.com" export TESTRAIL_API_KEY="your-api-key"
BrowserStack (Optional)
export BROWSERSTACK_USERNAME="your-username" export BROWSERSTACK_ACCESS_KEY="your-access-key"
Quick Reference
See
reference/ directory for:
— The 10 non-negotiable rulesgolden-rules.md
— Complete locator priority with cheat sheetlocators.md
— Web-first assertions referenceassertions.md
— Custom fixtures and storageState patternsfixtures.md
— Top 10 mistakes and fixescommon-pitfalls.md
— Diagnosis commands and quick fixesflaky-tests.md
See
templates/README.md for the full template index.