Web App Testing
Web App Testing — skill для взаимодействия с локальными веб-приложениями и их проверки через Playwright. Источник прямо ориентирует workflow на native Python Playwright scripts: такой скрипт открывает страницу, ждёт выполнения приложения, взаимодействует с найденными элементами и закрывает браузер. В комплекте указан helper scripts/with_server.py, который управляет жизненным циклом сервера и поддерживает несколько серверов. Перед использованием helper нужно сначала запустить его с --help, чтобы увидеть актуальный интерфейс команд. Сначала skill предлагает определить, является ли задача статической HTML-проверкой. Если HTML достаточно, его можно прочитать напрямую и выбрать селекторы. Для динамического приложения сначала выясняется, запущен ли сервер. Если нет, helper запускается с командой сервера, портом и Python-скриптом проверки; для одного сервера источник показывает пример с npm run dev на порту 5173, а для нескольких — отдельные параметры --server и --port для backend и frontend. Эти команды дают простой способ поднять нужное окружение перед тестом, не встраивая управление сервером в сам Playwright-сценарий. Для динамического интерфейса рекомендован порядок reconnaissance-then-action. Сначала нужно перейти на страницу и дождаться networkidle, затем сделать screenshot или прочитать page.content(), получить доступные кнопки и другие элементы, выбрать селекторы по фактически отрендеренному состоянию и только после этого выполнять действия. В примерах используются descriptive selectors: text=, role=, CSS-селекторы или id. Для конкретного элемента можно добавить page.wait_for_selector(), а для коротких переходов — page.wait_for_timeout(). Ключевое правило источника — не инспектировать DOM до ожидания networkidle, иначе динамическое приложение может ещё не показать нужные элементы. Сценарий на Python использует sync_playwright(), запускает Chromium в headless режиме, создаёт страницу, вызывает page.goto(), ждёт networkidle и затем выполняет проверки. Скриншот можно сохранить через page.screenshot(path=..., full_page=True), содержимое страницы получить через page.content(), а список кнопок исследовать через page.locator('button').all(). После завершения браузер нужно закрыть. Такой шаблон подходит для проверки frontend-функциональности, воспроизведения пользовательского сценария, диагностики UI-поведения, снимков экрана и чтения browser logs; конкретные assertions остаются частью тестового скрипта. Ограничение workflow следует из самого источника: он рассчитан на Python Playwright и доступное окружение локального приложения. Для динамических страниц требуется дождаться реального состояния после загрузки, а селекторы должны опираться на DOM, который удалось обнаружить во время reconnaissance. Helper управляет серверами, но не выбирает за пользователя бизнес-сценарий и не заменяет проверку ожидаемого результата. Поэтому перед действием нужно зафиксировать наблюдаемое состояние, использовать понятные селекторы, закрыть browser context и отдельно проверить, что сценарий действительно подтвердил нужное поведение.
Для чего подходит
- Проверка локального интерфейса
- Диагностика UI-поведения
- Скриншоты и browser logs
Установка
Сначала прочитайте SKILL.md и scripts в исходном репозитории. Затем выполните команду в каталоге проекта:
npx skills add https://github.com/anthropics/skills/tree/main/skills/webapp-testing