Skip to main content
Glama
kaizen-yutani

playwright-autopilot

Playwright Autopilot

Используете Selenium, Cypress или WebDriverIO? E2Epilot предоставляет тот же движок AI-триажа для 6 фреймворков, включая Selenium Java, SeleniumBase и другие. Веб-сайт: e2epilot.com | npm: @e2epilot/cli

Плагин для Claude Code, который автономно отлаживает и исправляет E2E-тесты Playwright. Он запускает ваши тесты с полным захватом действий — снимками DOM, сетевыми запросами, выводом консоли, скриншотами — затем исследует сбои, как старший QA-инженер, и применяет исправление.

https://github.com/user-attachments/assets/26f734a5-d05e-41c9-bc3f-2b58561c2ce0

Быстрый старт

# Add the marketplace
/plugin marketplace add kaizen-yutani/playwright-autopilot

# Install the plugin
/plugin install kaizen-yutani/playwright-autopilot

Затем попросите Claude исправить упавший тест или провести триаж всего набора тестов:

/playwright-autopilot:fix-e2e tests/checkout.spec.ts
/playwright-autopilot:triage-e2e e2e

Или просто опишите, что вам нужно — Claude автоматически использует инструменты MCP:

Fix all failing e2e tests in the "e2e" project

Related MCP server: Browser Testing MCP Server

Что он делает

Каждое действие в браузере во время выполнения теста фиксируется с помощью:

  • Снимков DOM до/после — дерево aria страницы до и после каждого клика, ввода данных, навигации

  • Сетевых запросов — URL, метод, статус, время выполнения, тела запросов/ответов

  • Вывода консоли — ошибки, предупреждения, логи, привязанные к действию, которое их вызвало

  • Скриншотов — сделанных в момент сбоя

Когда тест падает, Claude не гадает — он считывает фактическое состояние страницы, проверяет неудачные вызовы API и отслеживает первопричину по временной шкале действий.

Как это работает

1. Хук захвата

Легковесный CJS-хук (captureHook.cjs) внедряется через NODE_OPTIONS --require в рабочие процессы тестов Playwright. Он использует monkey-patching для BrowserContext._initialize, чтобы добавить слушатель инструментария, который захватывает каждое действие браузера с полным контекстом. Изменения в исходный код Playwright не требуются — работает с любой установкой Playwright.

2. Инструменты MCP

Плагин предоставляет 37 инструментов через Model Context Protocol, которые Claude вызывает по требованию. Это эффективно с точки зрения токенов — вместо того чтобы выгружать все трассировки в контекст, Claude извлекает только то, что ему нужно:

Выполнение и отладка тестов:

Инструмент

Назначение

e2e_list_projects

Список проектов Playwright из конфигурации

e2e_list_tests

Обнаружение файлов тестов и сценариев

e2e_run_test

Запуск тестов с захватом действий, обнаружением нестабильности (retries, repeatEach)

e2e_get_failure_report

Сводка ошибок + DOM + сеть + консоль

e2e_get_evidence_bundle

Все доказательства сбоя в одном вызове — готово для Jira

e2e_generate_report

Автономный HTML или JSON отчет

e2e_suggest_tests

Анализ пробелов в покрытии тестами

e2e_get_actions

Пошаговая временная шкала действий

e2e_get_action_detail

Глубокое изучение одного действия

e2e_get_dom_snapshot

Дерево Aria до/после действия

e2e_get_dom_diff

Что изменилось в DOM

e2e_get_network

Сетевые запросы с фильтрацией

e2e_get_console

Вывод консоли с фильтрацией

e2e_get_screenshot

Скриншот сбоя в виде изображения

e2e_get_test_source

Файл теста с выделенной строкой сбоя

e2e_find_elements

Поиск конкретных элементов в DOM

e2e_scan_page_objects

Индексация всех объектов страниц и методов

e2e_get_app_flows

Чтение сохраненных сценариев приложения

e2e_save_app_flow

Сохранение проверенного пользовательского пути

e2e_get_context

Сценарии + индекс объектов страниц в одном вызове

e2e_discover_flows

Автоматическое сканирование спецификаций для карты сценариев

e2e_build_flows

Автоматический запуск непокрытых тестов и сохранение их сценариев

e2e_get_stats

Дашборд состояния набора тестов: тренды успешности, показатели нестабильности, разбивка по категориям

e2e_save_triage_run

Сохранение категоризированного прогона триажа для отслеживания трендов

e2e_get_triage_config

Чтение настроек триажа (конфигурация Jira, порог нестабильности)

Интерактивное исследование браузера:

Инструмент

Назначение

browser_navigate

Открытие URL (автоматически запускает браузер)

browser_navigate_back

Назад в истории браузера

browser_snapshot

Захват дерева доступности ARIA с маркерами [ref=X]

browser_click

Клик по элементу по ссылке

browser_type

Ввод текста в поле, опционально отправка

browser_fill_form

Заполнение нескольких полей формы за один вызов

browser_select_option

Выбор опции в выпадающем списке

browser_press_key

Нажатие клавиши (Enter, Escape, Tab и т.д.)

browser_hover

Наведение на элемент

browser_take_screenshot

Захват PNG скриншота

browser_set_headers

Установка пользовательских HTTP-заголовков (только для того же источника для безопасности CORS)

browser_close

Закрытие браузера

Инструменты browser_* запускают реальный экземпляр Chrome и позволяют Claude интерактивно исследовать ваше приложение — переходить по страницам, кликать элементы, заполнять формы и наблюдать за состоянием страницы через снимки ARIA. Каждое взаимодействие возвращает время выполнения, сетевые запросы, изменения DOM и обновленный снимок. Используйте это, чтобы понять приложение перед написанием тестов, визуально отладить проблемы UI или проверить исправления.

3. Память сценариев

После исправления (или проверки) теста плагин сохраняет подтвержденный сценарий работы приложения — последовательность взаимодействий пользователя, составляющих успешный путь. Эти сценарии сохраняются в .e2e-flows.json и накапливаются в течение сессий.

Когда этот тест сломается в следующий раз, Claude уже будет знать предполагаемый путь пользователя и сразу перейдет к выявлению того, что изменилось. Агент становится быстрее со временем.

4. Обнаружение нестабильности (Flaky tests)

Два взаимодополняющих режима для выявления нестабильных тестов:

retries: N — Запуск теста N+1 раз в отдельных процессах Playwright. Каждый прогон получает свой runId с полным захватом действий. Возвращает вердикт: FLAKY (нестабильный), CONSISTENT PASS (стабильно проходит) или CONSISTENT FAIL (стабильно падает). Лучше всего подходит для отладки с 2-3 повторами.

e2e_run_test(location: "tests/checkout.spec.ts:15", retries: 2)

repeatEach: N — Нативный --repeat-each в Playwright. Все итерации в одном процессе. Быстрый стресс-тест для подтверждения нестабильности — используйте 30-100 для уверенности.

e2e_run_test(location: "tests/checkout.spec.ts:15", repeatEach: 40)

5. Пакеты доказательств

e2e_get_evidence_bundle упаковывает все доказательства сбоя в один ответ — ошибку, шаги для воспроизведения, временную шкалу действий, неудачные сетевые запросы с телами, ошибки консоли, снимок DOM и скриншоты. Заменяет вызов 6+ инструментов по отдельности.

Передайте outputFile: true, чтобы записать markdown-файл в test-reports/ для вложений в Jira.

6. HTML-отчеты

Пакетные запуски (без location) автоматически генерируют автономный HTML-отчет с:

  • Сводкой прохождения/сбоев с бейджами статуса

  • Сворачиваемыми разделами для каждого теста

  • Временными шкалами действий, неудачными сетевыми запросами, ошибками консоли

  • Снимками DOM в точках сбоя

  • Скриншотами в виде встроенных base64 изображений

Отчеты записываются в test-reports/report-<runId>.html. Вы также можете вызвать e2e_generate_report вручную для любого прогона.

7. Триаж набора тестов и отслеживание состояния

Запустите весь набор тестов, классифицируйте каждый сбой и создайте отчет, готовый для руководства:

/playwright-autopilot:triage-e2e e2e

Claude классифицирует каждый сбой как Известная проблема, Ошибка приложения, Обновление теста, Нестабильный тест или Новый сбой — сверяется с Jira для существующих тикетов, создает новые тикеты для ошибок приложения с пакетами доказательств и сохраняет прогон триажа для отслеживания трендов.

e2e_get_stats предоставляет дашборд состояния набора тестов — тренды успешности, рейтинг нестабильных тестов, разбивку категорий сбоев и новые сбои — все это на основе локальной истории без необходимости запуска тестов.

9. Анализ покрытия

e2e_suggest_tests сканирует весь ваш проект, чтобы найти пробелы в покрытии:

  1. Непротестированные методы объектов страниц — методы в файлах .page.ts / .service.ts, которые не вызываются ни в одной спецификации

  2. Отсутствующие варианты сценариев — сценарии с предварительными условиями (например, "черновик не существует"), у которых нет варианта продолжения

  3. Непокрытые шаги сценариев — действия, перечисленные в подтвержденных сценариях, которые не проверяются ни одной спецификацией

10. Архитектурная осведомленность

Перед написанием любого исправления плагин сканирует ваш проект на наличие объектов страниц, уровней сервисов и фикстур тестов. Он следует вашим существующим шаблонам:

  • Использует методы вашего Page Object Model вместо написания «сырых» вызовов Playwright

  • Уважает разделение на бизнес-слой/слой сервисов

  • Использует getByRole(), getByTestId(), веб-ориентированные утверждения

  • Создает минимальные diff-ы — обычно добавление одной или двух строк

Философия отладки

Плагин следует строгой методологии диагностики:

Думайте пользовательскими сценариями, а не селекторами. Прежде чем касаться кода, он отображает предполагаемый путь пользователя. Когда шаг отсутствует — выпадающий список никогда не выбирается, обязательное поле никогда не заполняется — он находит существующий метод объекта страницы и добавляет вызов.

Четыре категории первопричин:

  1. Отсутствующий шаг теста — тест пропускает взаимодействие с UI, которое требует приложение

  2. Ошибка в коде теста — неверный селектор, устаревшее утверждение, плохие тестовые данные

  3. Ошибка приложения — само приложение сломано (сообщается, а не обходится)

  4. Грязное состояние — остатки от предыдущих запусков тестов, создающие помехи

Никаких хаков. Плагин никогда не будет использовать page.evaluate(), page.route(), page.addInitScript() или любую инъекцию JavaScript для обхода упавшего теста. Если для исправления требуются эти методы, значит, решается не та проблема.

Конфигурация

Настройка для нескольких проектов

Если ваш проект Playwright находится в другом каталоге, чем тот, где запущен Claude Code, установите переменную окружения PW_PROJECT_DIR в .mcp.json:

{
  "mcpServers": {
    "playwright-autopilot": {
      "command": "node",
      "args": ["path/to/plugin/server/mcp-server.js"],
      "env": {
        "PW_PROJECT_DIR": "/path/to/your/playwright/project"
      }
    }
  }
}

Требования

Лицензия

MIT

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables automated browser testing of web applications using Playwright, supporting user interactions, form submissions, console monitoring, network request inspection, and visual verification through screenshots.
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables automated end-to-end testing powered by Playwright where test cases are defined in natural language and executed by AI. Uses lightweight snapshot analysis with vision mode fallback for sophisticated testing scenarios.
    3
    Apache 2.0

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kaizen-yutani/playwright-autopilot'

If you have feedback or need assistance with the MCP directory API, please join our Discord server