playwright-expert

Jeffallan/claude-skills · Agent Skill

Специализированный агент для автоматизации тестирования веб-интерфейсов с помощью Playwright. Помогает писать E2E-тесты, настраивать инфраструктуру, внедрять Page Object Model, отлаживать нестабильные сценарии и интегрировать проверки в CI/CD пайплайны.

Перейти к установке ↓

Обзор

АвторJeffallanСообщество
РепозиторийJeffallan/claude-skills
Папка скиллаplaywright-expert
Звёзды11 999
Форки1 150
Файлы6
Обновлён21 октября 2026 г.

Проверка Mozgi

Что мы нашли в файлах скилла. Подробности — по подписке.

Безопасность
средний риск · обнаружено 2 момента, требующих внимания
Совместимость
только инструкции — подходит большинству агентов
Похожие скиллы
найдено 144 похожих скилла
Ещё в подписке

Установка

Скилл — это папка с файлом SKILL.md. Выберите своего агента и скопируйте команды в терминал (macOS, Linux или Git Bash на Windows) в корне проекта.

Скопируйте промпт и вставьте в Claude, Codex или другого ассистента: он сам проверит скилл и подключит его.

Установи мне скилл «playwright-expert» с mozgi.io (https://mozgi.io/skills/playwright-expert/).

1. Скачай архив: https://mozgi.io/skills/playwright-expert/download
2. Прочитай SKILL.md и остальные файлы. Проверь, что скилл безопасен: нет скрытых команд, отправки данных наружу или скриптов, которые делают не то, что описано. Если что-то подозрительно — остановись и скажи мне.
3. Положи папку «playwright-expert» в папку скиллов своего агента: .claude/skills/ для Claude Code, .agents/skills/ для Codex, .cursor/skills/ для Cursor, .gemini/skills/ для Gemini CLI. В проекте — внутри проекта, иначе в домашней папке (~/.claude/skills/ и т. п.).
4. Убедись, что получилось <папка скиллов>/playwright-expert/SKILL.md.
5. Коротко расскажи, что умеет этот скилл, и предложи попробовать его на моей задаче.

Если какой-то шаг не можешь сделать сам — подскажи, что нажать или ввести.

Файлы скилла

6 файлов Скачать ZIP

Просмотрите SKILL.md и сопутствующие файлы перед установкой. Клик по файлу — предпросмотр.

Содержимое SKILL.md

Оригинальный текст автора · только чтение

Playwright Expert

E2E testing specialist with deep expertise in Playwright for robust, maintainable browser automation.

Core Workflow

1. Analyze requirements - Identify user flows to test

2. Setup - Configure Playwright with proper settings

3. Write tests - Use POM pattern, proper selectors, auto-waiting

4. Debug - Run test → check trace → identify issue → fix → verify fix

5. Integrate - Add to CI/CD pipeline

Reference Guide

Load detailed guidance based on context:

| Topic | Reference | Load When |

|-------|-----------|-----------|

| Selectors | references/selectors-locators.md | Writing selectors, locator priority |

| Page Objects | references/page-object-model.md | POM patterns, fixtures |

| API Mocking | references/api-mocking.md | Route interception, mocking |

| Configuration | references/configuration.md | playwright.config.ts setup |

| Debugging | references/debugging-flaky.md | Flaky tests, trace viewer |

Constraints

MUST DO

  • Use role-based selectors when possible
  • Leverage auto-waiting (don't add arbitrary timeouts)
  • Keep tests independent (no shared state)
  • Use Page Object Model for maintainability
  • Enable traces/screenshots for debugging
  • Run tests in parallel

MUST NOT DO

  • Use waitForTimeout() (use proper waits)
  • Rely on CSS class selectors (brittle)
  • Share state between tests
  • Ignore flaky tests
  • Use first(), nth() without good reason

Code Examples

Selector: Role-based (correct) vs CSS class (brittle)

// ✅ Role-based selector — resilient to styling changes
await page.getByRole('button', { name: 'Submit' }).click();
await page.getByLabel('Email address').fill('user@example.com');

// ❌ CSS class selector — breaks on refactor
await page.locator('.btn-primary.submit-btn').click();
await page.locator('.email-input').fill('user@example.com');

Page Object Model + Test File

// pages/LoginPage.ts
import { type Page, type Locator } from '@playwright/test';

export class LoginPage {
  readonly page: Page;
  readonly emailInput: Locator;
  readonly passwordInput: Locator;
  readonly submitButton: Locator;
  readonly errorMessage: Locator;

  constructor(page: Page) {
    this.page = page;
    this.emailInput = page.getByLabel('Email address');
    this.passwordInput = page.getByLabel('Password');
    this.submitButton = page.getByRole('button', { name: 'Sign in' });
    this.errorMessage = page.getByRole('alert');
  }

  async goto() {
    await this.page.goto('/login');
  }

  async login(email: string, password: string) {
    await this.emailInput.fill(email);
    await this.passwordInput.fill(password);
    await this.submitButton.click();
  }
}
// tests/login.spec.ts
import { test, expect } from '@playwright/test';
import { LoginPage } from '../pages/LoginPage';

test.describe('Login', () => {
  let loginPage: LoginPage;

  test.beforeEach(async ({ page }) => {
    loginPage = new LoginPage(page);
    await loginPage.goto();
  });

  test('successful login redirects to dashboard', async ({ page }) => {
    await loginPage.login('user@example.com', '<test-password>');
    await expect(page).toHaveURL('/dashboard');
  });

  test('invalid credentials shows error', async () => {
    await loginPage.login('user@example.com', '<wrong-password>');
    await expect(loginPage.errorMessage).toBeVisible();
    await expect(loginPage.errorMessage).toContainText('Invalid credentials');
  });
});

Debugging Workflow for Flaky Tests

// 1. Run failing test with trace enabled
// playwright.config.ts
use: {
  trace: 'on-first-retry',
  screenshot: 'only-on-failure',
}

// 2. Re-run with retries to capture trace
// npx playwright test --retries=2

// 3. Open trace viewer to inspect timeline
// npx playwright show-trace test-results/.../trace.zip

// 4. Common fix — replace arbitrary timeout with proper wait
// ❌ Flaky
await page.waitForTimeout(2000);
await page.getByRole('button', { name: 'Save' }).click();

// ✅ Reliable — waits for element state
await page.getByRole('button', { name: 'Save' }).waitFor({ state: 'visible' });
await page.getByRole('button', { name: 'Save' }).click();

// 5. Verify fix — run test 10x to confirm stability
// npx playwright test --repeat-each=10

Output Templates

When implementing Playwright tests, provide:

1. Page Object classes

2. Test files with proper assertions

3. Fixture setup if needed

4. Configuration recommendations

Knowledge Reference

Playwright, Page Object Model, auto-waiting, locators, fixtures, API mocking, trace viewer, visual comparisons, parallel execution, CI/CD integration

Maintained by @jeffallan ↗, Principal Consultant at Synergetic Solutions ↗

Documentation ↗

Вопросы и ответы

Что делает скилл playwright-expert?

Специализированный агент для автоматизации тестирования веб-интерфейсов с помощью Playwright. Помогает писать E2E-тесты, настраивать инфраструктуру, внедрять Page Object Model, отлаживать нестабильные сценарии и интегрировать проверки в CI/CD пайплайны.

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

Откройте блок «Установка» на этой странице и выберите своего агента — Claude Code, Codex, Cursor или Gemini CLI: там готовые команды, которые копируют папку скилла в нужное место. Либо скопируйте промпт из вкладки «Через ассистента» — ассистент сам проверит и подключит скилл.

С какими нейросетями работает playwright-expert?

Скиллы — это обычные инструкции в Markdown (формат Agent Skills), поэтому playwright-expert подходит любому агенту, который читает SKILL.md: Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode и другие. Модель загружает инструкции только когда задача подходит под описание скилла.

Скилл playwright-expert бесплатный?

Скилл опубликован автором Jeffallan в открытом доступе под лицензией MIT. Сам скилл ничего не стоит — вы платите только своему провайдеру нейросети за использованные токены.

Безопасно ли устанавливать скиллы?

Скилл — это инструкции, которые агент будет выполнять, поэтому перед установкой прочитайте SKILL.md и сопутствующие файлы. Скрипты из папки скилла запускаются только если их запустит агент — следите за тем, что он делает, и не давайте лишних прав.

Чем скилл отличается от MCP-сервера или плагина?

MCP-сервер и плагин дают модели новые инструменты — код, который выполняется и возвращает результат. Скилл даёт знания и порядок действий: как подходить к задаче, какие шаги делать и как выглядит хороший результат. Ему не нужен сервер или ключ API.

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

Все скиллы →
nextjs-developer Специализированный агент для разработки приложений на Next.js 14+. Помогает с настройкой App Router, серверных компонентов, Server Actions, оптимизацией производительности, SEO и развертыванием проектов на платформе Vercel. Jeffallan12k fastapi-expert Экспертный помощник для разработки высокопроизводительных асинхронных API на FastAPI и Pydantic V2. Помогает создавать REST-эндпоинты, настраивать JWT-авторизацию, работать с SQLAlchemy и генерировать OpenAPI-документацию. Jeffallan12k flutter-expert Экспертный помощник для разработки кроссплатформенных приложений на Flutter 3 и Dart. Помогает с созданием виджетов, настройкой стейт-менеджмента через Riverpod или Bloc, маршрутизацией GoRouter и оптимизацией производительности кода. Jeffallan12k game-developer Разрабатывает игровые системы, реализует функции Unity/Unreal Engine и оптимизирует производительность игр, включая сетевые функции и шейдеры. Jeffallan11.4k agent-transcript Добавляет отредактированную стенограмму агента в тело PR или issue GitHub в рамках рабочих процессов OpenClaw. openclaw389k autoreview Автоматизирует проверку кода с использованием различных AI-моделей, предоставляя структурированные отчеты и рекомендации. openclaw389k