К основному содержанию
скилл CX Codex

Playwright · mindrally — скилл для Claude Code: тестирование веб-приложений

Скилл для автоматизации end-to-end тестов веб-приложений на TypeScript и JavaScript. Учит агента писать тесты по best practices: правильные локаторы, web-first assertions, отсутствие hardcoded таймаутов.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add Mindrally/skills --skill playwright -a claude-code
Открыть на GitHub

Что делает playwright

Скилл содержит методологию и примеры кода для написания надёжных E2E-тестов с Playwright. Охватывает структуру тестов с помощью fixtures, стратегии поиска элементов (getByRole, getByLabel, getByTestId), а также web-first assertions, которые автоматически ждут и повторяют попытки. Включает конфигурацию для запуска тестов в Chrome, Firefox и на мобильных устройствах.

Агент научится создавать тесты, которые следят за критическими пользовательскими путями, избегая хрупких селекторов и случайных таймаутов. Помогает организовать чистое состояние тестов через beforeEach и afterEach, а также извлечь повторяемую логику в helper-функции.

Какие задачи решает

  • написать E2E-тесты для веб-приложения с правильными локаторами
  • избежать flaky-тестов с hardcoded таймаутами и нестабильными селекторами
  • настроить параллельный запуск тестов в разных браузерах
  • добавить скриншоты и трассировки только при падении
  • проверить логин, навигацию и критические бизнес-потоки

Примеры запросов агенту

  • Напиши E2E-тест для авторизации пользователя с Playwright, используя getByLabel для полей и getByRole для кнопки
  • Добавь конфигурацию Playwright с запуском в Chrome, Firefox и на мобильном, включи скриншоты при ошибках
  • Перепиши старый тест с XPath на getByRole и удали все waitForTimeout

Как установить playwright

1Через Skills CLI (Vercel)

npx skills add Mindrally/skills --skill playwright -a claude-code

2Вручную: положить файлы

~/.claude/skills/playwright/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/playwright/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о playwright

Как установить Playwright скилл в Claude Code?

Выполни npx skills add Mindrally/skills --skill playwright -a claude-code, затем скилл загрузится в ~/.claude/skills/playwright/SKILL.md и будет доступен агенту.

Зачем этот скилл нужен разработчику?

Он учит агента писать end-to-end тесты по best practices: правильные локаторы вместо хрупких CSS-селекторов, web-first assertions вместо hardcoded таймаутов, и конфигурацию для запуска в разных браузерах.

Какие локаторы рекомендует скилл?

В приоритете: getByRole (доступность), getByLabel (для инпутов), getByText (видимый текст), getByTestId (если есть data-testid) и getByPlaceholder. Избегай CSS-селекторов вроде .btn-primary.

Исходный текст

SKILL.md · Apache-2.0
---
name: playwright
description: Playwright end-to-end testing best practices for web applications, covering test design, locator strategies, and assertion patterns.
metadata:
  maintainer: Mindrally
  source: https://github.com/Mindrally/skills
---

# Playwright Testing Best Practices

You are a Senior QA Automation Engineer expert in TypeScript, JavaScript, and Playwright end-to-end testing.

## Test Design Principles

### Test Structure
- Create descriptive test names that clearly explain expected behavior
- Use Playwright fixtures (`test`, `page`, `expect`) for test isolation
- Implement `test.beforeEach` and `test.afterEach` for clean state management
- Keep tests DRY by extracting reusable logic into helper functions

```typescript
import { test, expect } from '@playwright/test';

test.describe('User Authentication', () => {
  test.beforeEach(async ({ page }) => {
    await page.goto('/login');
  });

  test('should login successfully with valid credentials', async ({ page }) => {
    await page.getByLabel('Email').fill('[email protected]');
    await page.getByLabel('Password').fill('password123');
    await page.getByRole('button', { name: 'Sign In' }).click();

    await expect(page.getByRole('heading', { name: 'Dashboard' })).toBeVisible();
  });
});
```

## Locator Strategy

### Recommended Locators
- `page.getByRole()` - Best for accessibility and user perspective
- `page.getByLabel()` - For form inputs with labels
- `page.getByText()` - For elements with visible text
- `page.getByTestId()` - When `data-testid` attributes exist
- `page.getByPlaceholder()` - For inputs with placeholder text

```typescript
// Recommended
await page.getByRole('button', { name: 'Submit' }).click();
await page.getByLabel('Email address').fill('[email protected]');

// Avoid
await page.locator('.btn-primary').click();
```

## Assertions and Waits

### Web-First Assertions
Prefer web-first assertions that automatically wait and retry:

- `toBeVisible()` - Element is visible
- `toHaveText()` - Element has specific text
- `toHaveValue()` - Input has specific value
- `toHaveURL()` - Page URL assertion

```typescript
// Recommended - web-first assertions
await expect(page.getByRole('alert')).toBeVisible();
await expect(page).toHaveURL('/dashboard');

// Avoid - hardcoded timeouts
await page.waitForTimeout(5000); // Never do this
```

### Waiting Best Practices
- Avoid hardcoded timeouts
- Use `page.waitForLoadState()` for navigation
- Use `page.waitForResponse()` for API calls

## Configuration

```typescript
import { defineConfig, devices } from '@playwright/test';

export default defineConfig({
  testDir: './tests',
  fullyParallel: true,
  retries: process.env.CI ? 2 : 0,
  use: {
    baseURL: 'http://localhost:3000',
    trace: 'on-first-retry',
    screenshot: 'only-on-failure',
  },
  projects: [
    { name: 'chromium', use: { ...devices['Desktop Chrome'] } },
    { name: 'firefox', use: { ...devices['Desktop Firefox'] } },
    { name: 'mobile', use: { ...devices['iPhone 13'] } },
  ],
});
```

## Best Practices
- Focus on critical user paths reflecting real behavior
- Keep tests independent and deterministic
- Add JSDoc comments for helper functions
- Implement proper error handling and logging

© Mindrally · Apache-2.0 · Mindrally/skills

Похожие скиллы

Все скиллы по теме «Тесты и QA» →

Сначала — playwright от других авторов.

playwright PyModel Скилл для Playwright в Next.js: 45 правил по 8 категориям — от архитектуры тестов до отладки в CI. Пригодится, когда тесты падают через раз. CX Codex +1 485установок playwright secondsky Скилл для браузерной автоматизации и E2E-тестов на Playwright. Сам находит запущенный dev-сервер и пишет скрипты под вашу задачу. CX Codex +1 1 000установок playwright bobmatnyc Скилл по Playwright для написания end-to-end тестов: локаторы, авто-ожидание, кросс-браузерный прогон. Пригодится, когда нужно покрыть тестами пользовательские сценарии. CX Codex +1 879установок playwright oakoss Скилл для ИИ-агента по Playwright: локаторы, ассерты, скриншоты и PDF, обход бот-защиты, авторизованные сессии, отладка ошибок. CX Codex +1 452установок improve-codebase-architecture Matt Pocock Скилл ищет архитектурные узкие места в кодовой базе и показывает варианты углубления модулей в HTML-отчёте. Подойдёт для ревью перед рефакторингом. 1 163 035установок design-taste-frontend Leonxlnx Скилл задаёт арт-дирекцию для публичных страниц и рабочих экранов, а затем проверяет результат в браузере по скриншотам. Нужен, когда интерфейс выглядит шаблонным или недоработанным. CX Codex +1 678 700установок tdd Matt Pocock Скилл управляет циклом красный-зелёный в TDD: проверяет, что тесты пишутся до кода, держит их на уровне публичных интерфейсов и не завязывает на внутреннюю структуру. 1 141 062установок skill-creator официальный anthropics Помогает создать новый скилл, доработать существующий и проверить результат через тестовые промпты и оценки. 414 180установок agent-browser vercel-labs Скилл управляет браузером через CLI: открывает страницы, заполняет формы, нажимает кнопки и проверяет веб-приложения. Подходит для задач, где агенту нужно действовать в интерфейсе. CX Codex +1 1 200 000установок prototype Matt Pocock Создаёт временный прототип, чтобы проверить логику, модель состояния или вид интерфейса до работы над основным кодом. 986 201установок

Из того же набора236

html Скилл задаёт правила семантичной HTML-разметки, форм и доступности. Пригодится для вёрстки страниц, где важны структура, ARIA и SEO. CX Codex +1 1 100установок systemverilog Скилл задаёт агенту правила проектирования на SystemVerilog: модульность, синхронные схемы, тайминги и верификация. Пригодится, если вы пишете RTL для FPGA или ASIC. CX Codex +1 1 100установок fpga Набор правил разработки под FPGA на SystemVerilog в Vivado. Помогает настраивать тайминги, шину AXI, оптимизировать ресурсы и писать тестовые окружения. CX Codex +1 1 100установок php-development Скилл задаёт агенту правила написания PHP 8+ кода: SOLID, PSR-12, строгая типизация, тесты на PHPUnit. Пригодится, когда проект на PHP растёт и хочется единый стиль. CX Codex +1 1 100установок gitlab-workflow Скилл учит ИИ-ассистента правилам GitLab: от оформления merge request до настройки конвейеров .gitlab-ci.yml. Помогает выстроить командную разработку. CX Codex +1 1 100установок ux-design Скилл задаёт агенту правила UX-проектирования: от исследования пользователей до доступности и адаптивной вёрстки. Пригодится, когда проектируешь или проверяешь интерфейс. CX Codex +1 1 100установок lottie Правила для ИИ-агента, который пишет Lottie-анимации на веб-страницах: формат dotLottie, ленивая загрузка, выбор рендерера и доступность. CX Codex +1 1 100установок docker Задаёт правила сборки легковесных контейнеров, многоэтапных Dockerfile и конфигураций Docker Compose. CX Codex +1 1 100установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой