Modern QA2026От Selenium к Playwright
Join

Course13 Browser Automation with Playwright

Foundations · Chapter 13

От Selenium к Playwright

Updated Jul 2026

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

Три эпохи автоматизации браузеров

Эпоха 1: Selenium (2004–2018)

Selenium определил всю область. Он представил протокол WebDriver — стандарт W3C, где тестовый код отправляет HTTP+JSON-команды процессу драйвера, который управляет браузером. Каждое взаимодействие — это HTTP-запрос и ответ.

Тестовый код  --(HTTP/JSON)--> ChromeDriver --(DevTools Protocol)--> Chrome

Эта архитектура принесла кросс-браузерную, мультиязычную автоматизацию. Но также принесла врождённую латентность, нестабильные ожидания и бремя поддержки, которое плохо масштабировалось.

Эпоха 2: Инструменты прямого протокола (2017–2020)

Puppeteer (2017) доказал, что прямое подключение к Chrome DevTools Protocol через постоянный WebSocket значительно быстрее и надёжнее. Cypress (2017) пошёл другим путём — выполнение внутри самого браузера. Оба пожертвовали широтой Selenium ради скорости и удобства разработки.

Эпоха 3: Playwright (2020–настоящее время)

Playwright, созданный командой разработчиков Puppeteer, объединил лучшее из всех подходов: прямые протокольные подключения к Chromium, Firefox и WebKit с единым API, автоожиданием и встроенной тестовой инфраструктурой. Он стал выбором по умолчанию для новых проектов.

Сравнение архитектур

Аспект Selenium Playwright
Коммуникация HTTP-запросы к процессу драйвера Постоянный WebSocket к браузеру
Ожидание Ручное (явные/неявные ожидания) Автоматическое, встроенное в каждое действие
Браузеры Chrome, Firefox, Safari, Edge, IE Chromium, Firefox, WebKit
Изоляция Один браузер на сессию Контексты браузера (легковесные, параллельные)
Языки Java, Python, JS, C#, Ruby и др. TypeScript/JS, Python, Java, C#
Скорость Медленнее (HTTP-накладные на каждую команду) Быстрее (одно соединение, параллельные контексты)
Тест-раннер Внешний (JUnit, pytest и т.д.) Встроенный (@playwright/test)
Управление сетью Ограниченное (через прокси) Нативный перехват и мокирование запросов

Почему архитектура имеет значение

В Selenium простое «найти элемент и кликнуть» требует двух HTTP-запросов к драйверу. Тест со 100 взаимодействиями делает 200+ HTTP-запросов. В Playwright все команды идут через одно WebSocket-соединение с мультиплексированием — без накладных расходов на каждую команду.

// Playwright: автоожидание элемента, проверка готовности, затем клик
await page.getByRole('button', { name: 'Submit' }).click();

// Selenium — необходимы ручные ожидания
WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.CSS_SELECTOR, "button[type='submit']"))
).click()

Сдвиг рынка

Опросы разработчиков 2024–2025 годов показывают, что Playwright обгоняет Selenium в принятии новых проектов:

  • Stack Overflow 2024: Playwright — самый любимый инструмент браузерного тестирования
  • State of JS 2024: Playwright имеет наивысший рейтинг удовлетворённости среди E2E-фреймворков
  • npm downloads: @playwright/test превысил selenium-webdriver по еженедельным загрузкам в 2024 году
  • Вакансии: «Playwright» встречается в новых QA-вакансиях чаще, чем «Selenium», с середины 2024 года

Selenium остаётся доминирующим в общем количестве развёрнутых кодовых баз — предприятия с годами инвестиций в Selenium не переписывают всё за одну ночь. Но направление очевидно.

Когда что использовать

Выбирайте Playwright, когда... Выбирайте Selenium, когда...
Начинаете новый проект Поддерживаете существующий Selenium-набор
Команда использует TypeScript/Python/Java/C# Команда использует Ruby или другие неподдерживаемые языки
Нужны быстрые, надёжные E2E-тесты Нужна поддержка IE11 или устаревших браузеров
Хотите встроенную тестовую инфраструктуру Организация требует Selenium
Нужно мокирование/перехват сети Критично требование мультиязычности

Честный ответ

Для большинства команд, начинающих сегодня, Playwright — правильный выбор. Он быстрее, надёжнее и имеет лучший опыт разработки. Но понимание архитектуры Selenium — протокола WebDriver, управления драйверами, жизненного цикла сессий — остаётся ценным, поскольку эти концепции переносятся на Playwright, и вы столкнётесь с Selenium в существующих проектах.

Ключевые выводы

  • Selenium стал пионером автоматизации браузеров с протоколом WebDriver (HTTP+JSON-запросы)
  • Playwright использует постоянные WebSocket-соединения, устраняя накладные расходы на каждую команду
  • Автоожидание Playwright устраняет главный источник нестабильности тестов Selenium
  • Индустрия мигрирует на Playwright для новых проектов; Selenium остаётся в унаследованных кодовых базах
  • Понимание обеих архитектур делает вас более эффективным QA-инженером