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" projectRelated 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 извлекает только то, что ему нужно:
Выполнение и отладка тестов:
Инструмент | Назначение |
| Список проектов Playwright из конфигурации |
| Обнаружение файлов тестов и сценариев |
| Запуск тестов с захватом действий, обнаружением нестабильности ( |
| Сводка ошибок + DOM + сеть + консоль |
| Все доказательства сбоя в одном вызове — готово для Jira |
| Автономный HTML или JSON отчет |
| Анализ пробелов в покрытии тестами |
| Пошаговая временная шкала действий |
| Глубокое изучение одного действия |
| Дерево Aria до/после действия |
| Что изменилось в DOM |
| Сетевые запросы с фильтрацией |
| Вывод консоли с фильтрацией |
| Скриншот сбоя в виде изображения |
| Файл теста с выделенной строкой сбоя |
| Поиск конкретных элементов в DOM |
| Индексация всех объектов страниц и методов |
| Чтение сохраненных сценариев приложения |
| Сохранение проверенного пользовательского пути |
| Сценарии + индекс объектов страниц в одном вызове |
| Автоматическое сканирование спецификаций для карты сценариев |
| Автоматический запуск непокрытых тестов и сохранение их сценариев |
| Дашборд состояния набора тестов: тренды успешности, показатели нестабильности, разбивка по категориям |
| Сохранение категоризированного прогона триажа для отслеживания трендов |
| Чтение настроек триажа (конфигурация Jira, порог нестабильности) |
Интерактивное исследование браузера:
Инструмент | Назначение |
| Открытие URL (автоматически запускает браузер) |
| Назад в истории браузера |
| Захват дерева доступности ARIA с маркерами |
| Клик по элементу по ссылке |
| Ввод текста в поле, опционально отправка |
| Заполнение нескольких полей формы за один вызов |
| Выбор опции в выпадающем списке |
| Нажатие клавиши (Enter, Escape, Tab и т.д.) |
| Наведение на элемент |
| Захват PNG скриншота |
| Установка пользовательских HTTP-заголовков (только для того же источника для безопасности CORS) |
| Закрытие браузера |
Инструменты 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 e2eClaude классифицирует каждый сбой как Известная проблема, Ошибка приложения, Обновление теста, Нестабильный тест или Новый сбой — сверяется с Jira для существующих тикетов, создает новые тикеты для ошибок приложения с пакетами доказательств и сохраняет прогон триажа для отслеживания трендов.
e2e_get_stats предоставляет дашборд состояния набора тестов — тренды успешности, рейтинг нестабильных тестов, разбивку категорий сбоев и новые сбои — все это на основе локальной истории без необходимости запуска тестов.
9. Анализ покрытия
e2e_suggest_tests сканирует весь ваш проект, чтобы найти пробелы в покрытии:
Непротестированные методы объектов страниц — методы в файлах
.page.ts/.service.ts, которые не вызываются ни в одной спецификацииОтсутствующие варианты сценариев — сценарии с предварительными условиями (например, "черновик не существует"), у которых нет варианта продолжения
Непокрытые шаги сценариев — действия, перечисленные в подтвержденных сценариях, которые не проверяются ни одной спецификацией
10. Архитектурная осведомленность
Перед написанием любого исправления плагин сканирует ваш проект на наличие объектов страниц, уровней сервисов и фикстур тестов. Он следует вашим существующим шаблонам:
Использует методы вашего Page Object Model вместо написания «сырых» вызовов Playwright
Уважает разделение на бизнес-слой/слой сервисов
Использует
getByRole(),getByTestId(), веб-ориентированные утвержденияСоздает минимальные diff-ы — обычно добавление одной или двух строк
Философия отладки
Плагин следует строгой методологии диагностики:
Думайте пользовательскими сценариями, а не селекторами. Прежде чем касаться кода, он отображает предполагаемый путь пользователя. Когда шаг отсутствует — выпадающий список никогда не выбирается, обязательное поле никогда не заполняется — он находит существующий метод объекта страницы и добавляет вызов.
Четыре категории первопричин:
Отсутствующий шаг теста — тест пропускает взаимодействие с UI, которое требует приложение
Ошибка в коде теста — неверный селектор, устаревшее утверждение, плохие тестовые данные
Ошибка приложения — само приложение сломано (сообщается, а не обходится)
Грязное состояние — остатки от предыдущих запусков тестов, создающие помехи
Никаких хаков. Плагин никогда не будет использовать 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"
}
}
}
}Требования
CLI Claude Code
Тестовый проект Playwright
Node.js 20+
Лицензия
MIT
This server cannot be installed
Maintenance
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
Playwright selector risk checks with healing suggestions and receipts.
Run multi-step tasks in a real Chrome browser: persistent environments, live view, human takeover.
Browser-based QA for AI-built software. Test pages with real browsers via agents.
AI QA that runs your app in a browser on every pull request: projects, test targets, test cases.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI assistants to inspect, debug, and test web pages using Playwright. Provides comprehensive DOM inspection, visibility debugging, layout validation, and element finding capabilities in real browser environments.34923MIT
- FlicenseNot gradedqualityDmaintenanceEnables automated browser testing of web applications using Playwright, supporting user interactions, form submissions, console monitoring, network request inspection, and visual verification through screenshots.
- AlicenseNot gradedqualityCmaintenanceEnables 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.3Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables browser automation and smoke testing via Playwright, with tools for navigation, DOM interaction, screenshots, network capture, and more.132MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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