Встречали бэкенд-разработчика, который разбирается во фронтенде и пишет E2E-тесты с помощью Playwright? Мы — да. И позвали его поделиться своим опытом на нашем техтолке. Антон Грибанов из Financial Risk Group рассказал о подводных камнях работы с Playwright. Записали основные мысли.
🔹 Что такое Playwright?
Это современный инструмент для автоматизации тестирования веб-приложений. По словам создателей, он поддерживает Chrome, Firefox, WebKit, работает быстро, умеет параллельный запуск тестов, автоматически ждёт загрузку элементов и завершение сетевых запросов. Но в реальности не всё так гладко, как в документации.
🔹 Проблемы и решения
1. Таймауты вместо ожидания Проблема. Тесты падали, потому что элементы не успевали загрузиться. Решение. Заменить page.waitForTimeout() на комбинацию Promise.all([page.waitForResponse(), locator.waitFor()]).
2. Модальные окна, которые мешают Проблема. Приложение показывало модальные окна (например, выбор окружения или патчноуты)в непредсказуемые моменты времени, которые ломали тесты. Решение. Использовать addLocatorHandler, но с оговорками (иногда он конфликтует с Promise.all).
3. Обновление Playwright сломало тесты Проблема. После обновления с 1.44 до 1.49 тесты перестали работать. Решение. Пришлось клонировать исходники Playwright, добавлять console.log и искать баг в коде. В итоге исходную задачу решили другим способом.
4. Drag’n’drop не работал Проблема. Перетаскивание элементов в компоненте Kanban-доски не срабатывало. Решение. Оказалось, что нужно добавить ручное движение мыши после автоматического drag’n’drop.
🔹 Чек-лист для стабильных тестов
✅ Избегайте waitForTimeout — используйте waitForResponse и waitFor.
✅ Обрабатывайте модальные окна — addLocatorHandler, но тестируйте поведение.
✅ Проверяйте обновления Playwright — иногда они ломают тесты.
✅В инструменте есть много способов посмотреть, что происходило во время теста — скриншоты, видео, TraceViewer, в котором можно увидеть html-код страницы в любой момент теста и даже сетевые запросы.
✅Тестируйте сложные взаимодействия (например, drag’n’drop) — иногда нужны костыли.
🔹 Вывод
Playwright — мощный инструмент, но требует глубокого понимания. Если что-то не работает, смотрите TraceViewer и логи, гуглите, лезьте в Issues на GitHub или Discord Playwright, иногда помогает нейросеть (но проверяйте её решения). Полную версию доклада смотрите здесь.
#экспертиза@altenar_b2b #мероприятия@altenar_b2b #QA #AutomationTesting #Playwright