playwright-pro — скилл для Claude Code: что делает и установка
Скилл помогает создавать, проверять и чинить Playwright-тесты, а также переносить наборы из Cypress или Selenium. Пригодится для E2E и CI/CD.
/plugin marketplace add alirezarezvani/claude-skills
/plugin install pw@claude-code-skillsЧто делает playwright-pro
playwright-pro добавляет слэш-команды /pw:pw-init, /pw:generate, /pw:pw-review, /pw:fix, /pw:migrate, /pw:coverage, /pw:testrail, /pw:browserstack и /pw:report. Они создают конфигурацию и первый smoke-тест, генерируют тесты по user story или URL, ищут слабые локаторы и пропущенные проверки, диагностируют flaky-тесты и помогают перенести набор.
Внутри есть 9 скиллов, 3 специализированных агента и 55 шаблонов для авторизации, CRUD, checkout, поиска, форм, dashboard и других сценариев. Также доступны хуки для проверки качества, 6 справочных документов и 2 MCP-сервера для TestRail и BrowserStack. Эти серверы нужно установить и зарегистрировать вручную; одних переменных окружения недостаточно.
Для работы с интеграциями понадобятся npm install в каталогах MCP-серверов и переменные TESTRAIL_URL, TESTRAIL_USER, TESTRAIL_API_KEY или BROWSERSTACK_USERNAME, BROWSERSTACK_ACCESS_KEY. Ставить скилл стоит тем, кто ведёт Playwright-набор в Claude Code; для небольшого теста без этих команд он избыточен.
Какие задачи решает
- сгенерировать Playwright-тест по user story или URL
- найти flaky-тест и заменить слабое ожидание
- перенести тесты из Cypress или Selenium
- проверить локаторы и пропущенные assertions
- сопоставить покрытие новой и старой тестовой базы
Примеры запросов агенту
- Запусти `/pw:pw-init` и подготовь конфигурацию Playwright с первым smoke-тестом.
- Сгенерируй тест для входа пользователя по user story: email и password, затем выполни `/pw:pw-review`.
- Разбери падение `tests/auth/login.spec.ts` в CI через `/pw:fix`, после чего запусти `npx playwright test`.
Как установить playwright-pro
1Через маркетплейс плагинов
/plugin marketplace add alirezarezvani/claude-skills/plugin install pw@claude-code-skills2Через Skills CLI (Vercel)
npx skills add alirezarezvani/claude-skills --skill playwright-pro -a claude-codenpx skills add alirezarezvani/claude-skills --skill pw -a claude-code3Вручную: положить файлы
~/.claude/skills/pw/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/pw/
Вручную: положить файлы
.agents/skills/pw/SKILL.mdДля всех проектов — ~/.agents/skills/
Вручную: положить файлы
.cursor/skills/pw/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install alirezarezvani/claude-skills pw2Вручную: положить файлы
.github/skills/pw/SKILL.mdКомандой платформы
gemini skills install https://github.com/alirezarezvani/claude-skills --path engineering-team/playwright-pro/skills/pwВручную: положить файлы
.devin/skills/pw/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Claude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Похожие
Вопросы о playwright-pro
Как установить playwright-pro в Claude Code?
Добавьте marketplace командой /plugin marketplace add alirezarezvani/claude-skills, затем установите плагин: /plugin install pw@claude-code-skills. Также доступна установка через npx skills add alirezarezvani/claude-skills --skill playwright-pro -a claude-code.
Что делает playwright-pro?
Скилл создаёт и проверяет Playwright-тесты, помогает чинить flaky-тесты и переносить наборы из Cypress или Selenium. В нём есть команды для покрытия, отчётов, TestRail и BrowserStack.
Как подключить TestRail и BrowserStack?
Серверы MCP не регистрируются автоматически. Для каждого интеграционного каталога нужно выполнить npm install, зарегистрировать сервер в пользовательской или проектной MCP-конфигурации и задать нужные переменные окружения.
Исходный текст
SKILL.md · MIT
---
name: "playwright-pro"
description: "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."
---
# 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 |
|---|---|
| `/pw:pw-init` | Set up Playwright — detects framework, generates config, CI, first test |
| `/pw:generate <spec>` | Generate tests from user story, URL, or component |
| `/pw:pw-review` | Review tests for anti-patterns and coverage gaps |
| `/pw:fix <test>` | Diagnose and fix failing or flaky tests |
| `/pw:migrate` | Migrate from Cypress or Selenium to Playwright |
| `/pw:coverage` | Analyze what's tested vs. what's missing |
| `/pw:testrail` | Sync with TestRail — read cases, push results |
| `/pw:browserstack` | Run on BrowserStack, pull cross-browser reports |
| `/pw:report` | Generate test report in your preferred format |
## Quick Start Workflow
The recommended sequence for most projects:
```
1. /pw:pw-init → scaffolds config, CI pipeline, and a first smoke test
2. /pw:generate → generates tests from your spec or URL
3. /pw: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 `/pw:generate` — always run `/pw:pw-review` before committing; it catches locator anti-patterns and missing assertions automatically.
- After `/pw:fix` — re-run the full suite locally (`npx playwright test`) to confirm the fix doesn't introduce regressions.
- After `/pw:migrate` — run `/pw:coverage` to confirm parity with the old suite before decommissioning Cypress/Selenium tests.
### Example: Generate → Review → Fix
```bash
# 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: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
1. `getByRole()` over CSS/XPath — resilient to markup changes
2. Never `page.waitForTimeout()` — use web-first assertions
3. `expect(locator)` auto-retries; `expect(await locator.textContent())` does not
4. Isolate every test — no shared state between tests
5. `baseURL` in config — zero hardcoded URLs
6. Retries: `2` in CI, `0` locally
7. Traces: `'on-first-retry'` — rich debugging without slowdown
8. Fixtures over globals — `test.extend()` for shared state
9. One behavior per test — multiple related assertions are fine
10. 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 *(optional — not auto-registered; see Integration Setup)*
- **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
> **Not auto-registered (issue #978).** The TestRail and BrowserStack MCP servers
> are no longer declared in the plugin's `.mcp.json` (they failed to connect for
> every user — no bundled `node_modules`). Exporting the env vars below is not
> enough: `/pw:testrail` / `/pw:browserstack` fail with "tool not found" until you
> enable the server manually (`cd integrations/<name>-mcp && npm install`, then
> register it in your own user/project MCP config). See `CLAUDE.md` → Integrations.
### TestRail (Optional)
```bash
export TESTRAIL_URL="https://your-instance.testrail.io"
export TESTRAIL_USER="[email protected]"
export TESTRAIL_API_KEY="your-api-key"
```
### BrowserStack (Optional)
```bash
export BROWSERSTACK_USERNAME="your-username"
export BROWSERSTACK_ACCESS_KEY="your-access-key"
```
## Quick Reference
See `reference/` directory for:
- `golden-rules.md` — The 10 non-negotiable rules
- `locators.md` — Complete locator priority with cheat sheet
- `assertions.md` — Web-first assertions reference
- `fixtures.md` — Custom fixtures and storageState patterns
- `common-pitfalls.md` — Top 10 mistakes and fixes
- `flaky-tests.md` — Diagnosis commands and quick fixes
See `templates/README.md` for the full template index.
© Alireza Rezvani · MIT · alirezarezvani/claude-skills