Что такое Playwright?
Playwright — современный инструмент Microsoft для автоматизации браузеров и E2E-тестирования. Он управляет Chromium, Firefox и WebKit одним API и из коробки решает главную боль автотестов — нестабильность из-за таймингов.
Ключевая особенность — автоожидания: перед действием Playwright сам дожидается, пока элемент появится и станет кликабельным. Это убирает ручные паузы, из-за которых тесты падают через раз без всякой причины.
В комплекте идут удобные инструменты: запись сценария кликами, трассировка упавшего теста с историей шагов и скриншотами, параллельный запуск, перехват сетевых запросов. Пишут тесты чаще всего на TypeScript или Python.
Где применяется
Playwright чаще выбирают в продуктовых командах и новых проектах, где фронтенд написан на JavaScript или TypeScript: тесты живут в том же репозитории и на том же языке, что и приложение. Один набор проверок при этом выполняется в Chromium, Firefox и WebKit без переписывания.
Помимо самих тестов инструмент закрывает и смежные задачи: запись сценария по действиям в браузере, отладка с пошаговым просмотром, трассировка с видео и снимками экрана при падении, подмена сетевых запросов и эмуляция мобильных устройств. Это заметно сокращает время на разбор нестабильных прогонов.
Пример
Тест открывает каталог, применяет фильтр по цене и проверяет, что в выдаче не осталось товаров дороже заданной суммы. Ожидание появления обновлённого списка происходит автоматически — писать паузы вручную не приходится.
import { test, expect } from '@playwright/test';
test('submits a consultation request', async ({ page }) => {
await page.goto('/ru/glossary');
await page.getByRole('button', { name: 'Записаться' }).click();
await page.getByLabel('Имя').fill('Анна');
await page.getByLabel('Телефон').fill('+380991234567');
await page.getByRole('button', { name: 'Отправить' }).click();
await expect(page.getByText('Спасибо за заявку')).toBeVisible();
}); Playwright или Selenium
Selenium — отраслевой стандарт с максимальной поддержкой языков и браузеров, чаще встречается в крупных и давних проектах, особенно на Java. Playwright моложе, быстрее в запуске и стабильнее по умолчанию, поэтому его чаще выбирают в новых проектах. Для карьеры в QA Automation полезно знать оба.
Частые вопросы
Чем Playwright лучше Selenium?
Прежде всего встроенными ожиданиями: он сам дожидается, пока элемент станет видимым и активным, что убирает основную причину нестабильных тестов. Добавьте к этому более быструю установку, работу с тремя движками браузеров и удобную трассировку падений.
На каких языках можно писать тесты?
Официально поддерживаются TypeScript и JavaScript, Python, Java и C#. Наиболее полно и раньше всего возможности выходят в версии для TypeScript — именно её использует большинство команд и большая часть документации и примеров в сети.
Подходит ли Playwright для тестирования API?
Да, в нём есть встроенный клиент для HTTP-запросов. Это удобно в смешанных сценариях: подготовить данные запросом к API, а затем проверить, как они отображаются в интерфейсе. Для полноценного набора API-тестов чаще берут специализированные инструменты.
Стоит ли переводить существующие тесты с Selenium?
Только при реальной боли: постоянные падения, долгие прогоны, сложная поддержка. Переписывание большого набора — это недели работы. Частая практика — оставить существующие тесты и писать на Playwright всё новое, постепенно смещая баланс.