Selenium vs Playwright в 2025: что учить автоматизатору и на чём пишут тесты в топовых компаниях

Selenium vs Playwright в 2025: что учить автоматизатору и на чём пишут тесты в топовых компаниях

В 2025 году рынок автоматизации тестирования переживает тектонический сдвиг. Playwright, выпущенный Microsoft в 2020 году, за 5 лет превратился из новичка в лидера по популярности, обогнав и Selenium, и Cypress по количеству скачиваний npm. Но означает ли это, что Selenium устарел? И какой инструмент учить, если вы только входите в профессию?

Ключевые цифры 2025 года: 19 миллионов скачиваний Playwright в неделю (npm), 39% доля Selenium на рынке автоматизации, +235% рост Playwright год к году.

Эта статья — детальное сравнение двух главных фреймворков для автоматизации UI-тестирования. Разберём архитектуру, производительность, экосистему, карьерные перспективы и дадим конкретные рекомендации: что учить в зависимости от ваших целей.

1. История и философия: откуда взялись эти инструменты

Selenium: ветеран индустрии (2004)

История Selenium:

  • 2004 — Джейсон Хаггинс создаёт Selenium в ThoughtWorks

  • 2008 — Появляется Selenium WebDriver (Selenium 2)

  • 2018 — WebDriver становится официальной рекомендацией W3C

  • 2021 — Выход Selenium 4 с поддержкой CDP

  • 2025 — Selenium 5 с полной поддержкой WebDriver BiDi

Selenium — это не фреймворк для тестирования, а библиотека для браузерной автоматизации. Его основная задача — предоставить унифицированный способ управления веб-браузером через стандартизированный WebDriver API. Это делает Selenium максимально гибким, но требует дополнительных инструментов для полноценного тестирования.

Playwright: современный подход (2020)

История Playwright:

  • 2017 — Команда разработчиков создаёт Puppeteer в Google

  • 2020 — Та же команда переходит в Microsoft и создаёт Playwright

  • 2022 — Playwright обгоняет Puppeteer по популярности

  • 2024 — Playwright обгоняет Cypress по npm-скачиваниям

  • 2025 — Playwright становится #1 инструментом по опросу TestGuild

Playwright — это полноценный фреймворк для end-to-end тестирования. Он изначально проектировался как комплексное решение: встроенный test runner, отчёты, параллелизация, auto-waiting, API-тестирование — всё «из коробки».

«Playwright — это инструмент, который ощущается так, будто он создан для 2025 года, а не для 2012.»
— BrowserStack Guide

2. Архитектура: почему Playwright быстрее

Ключевое различие между Selenium и Playwright — способ коммуникации с браузером.

Selenium: HTTP-запросы через WebDriver

Архитектура: Тест → HTTP-запрос → WebDriver → Браузер → HTTP-ответ → Тест

Каждая команда отправляется как HTTP-запрос и возвращается как JSON-ответ. Этот «туда-обратно» путь удваивает время на каждую операцию.

Playwright: WebSocket через DevTools Protocol

Архитектура: Тест ↔ WebSocket ↔ Browser DevTools Protocol

Постоянное WebSocket-соединение позволяет браузеру мгновенно передавать события (network, console, exceptions) без ожидания запросов.

Бенчмарки производительности

Тест на 100 итераций (16GB RAM, 2.6 GHz):

ФреймворкВремя выполненияРазница

Playwright

290.37 мсБазовый

Selenium

536.34 мс+85% медленнее

В реальных проектах:
Playwright выполняет тестовые наборы на 35-45% быстрее, чем эквивалентные Selenium-тесты. Для команд, запускающих тысячи тестов ежедневно, это означает экономию часов CI/CD-времени.

3. Ключевые возможности: сравнение feature-by-feature

ВозможностьSeleniumPlaywright

Языки

Java, Python, C#, Ruby, JS, PHP, PerlJS/TS, Python, Java, .NET

Браузеры

Chrome, Firefox, Safari, Edge, IEChromium, Firefox, WebKit

Auto-wait

Нет (ручные waits)Да (встроенный)

Параллелизация

Selenium Grid (настройка)Встроенная

Network interception

Через CDP (ограниченно)Полная поддержка

API testing

Нет (нужен RestAssured)Встроенный

Trace Viewer

НетДа

Codegen (запись)

Selenium IDEplaywright codegen

Mobile emulation

ОграниченноПолная

Мобильные приложения

Appium интеграцияТолько браузеры

Auto-wait: почему это критично

Одна из главных проблем Selenium — flaky tests (нестабильные тесты). Элемент может быть ещё не загружен, когда тест пытается с ним взаимодействовать.

Selenium: ручные ожидания

WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement element = wait.until(
  ExpectedConditions.elementToBeClickable(By.id("submit"))
);
element.click();

Playwright: автоматическое ожидание

await page.click('#submit');

// Playwright автоматически ждёт:
// - Элемент видим
// - Элемент стабилен
// - Принимает события
// - Не перекрыт другими

Actionability checks в Playwright: Перед каждым действием Playwright проверяет, что элемент видим, стабилен (не анимируется), не отключён, не перекрыт другими элементами и принимает pointer-события.

4. Доли рынка и популярность в 2025

Глобальная статистика

МетрикаSeleniumPlaywrightCypress

Доля рынка

39% (25% по 6sense)15%~10%

npm downloads/неделя

~4M19M6M

GitHub stars

32K78K49K

Репозитории GitHub

354K424K

Компании (LinkedIn)

31K+

Рост YoY

Снижение+235%Стагнация

Важный контекст: Selenium лидирует по числу компаний и разработчиков (~15.4M), но большая часть — это поддержка legacy-тестов. Новые проекты всё чаще выбирают Playwright.

Тренды 2025 года

  • Playwright — #1 инструмент по опросу TestGuild, обогнал Selenium и Cypress

  • Selenium — остаётся стандартом для enterprise и legacy-проектов

  • Cypress — пик популярности пройден (2022-2023), сейчас стабилен

  • WebDriver BiDi — новый стандарт W3C, который объединит преимущества обоих подходов

5. Кто использует что: топовые компании

Playwright: Microsoft, Adobe, Disney+

Playwright используют такие компании как Microsoft, Adobe и Disney+. Это неудивительно: Microsoft — создатель Playwright, а Adobe и Disney+ работают с современными SPA-приложениями.

Netflix: собственный подход (SafeTest)

Netflix создал собственный фреймворк SafeTest, который комбинирует преимущества end-to-end тестирования (Playwright) с компонентным unit-тестированием:

«SafeTest выступает как "клей" между test runner (Jest/Vitest), инструментом браузерной автоматизации (Playwright) и frontend-фреймворком (React). Он позволяет писать тесты, которые работают и в Node.js, и в реальном браузере.»

Selenium: enterprise и финтех

Selenium остаётся стандартом в:

  • Банки и финтех — строгие compliance-требования, legacy-инфраструктура

  • Госсектор — необходимость поддержки старых браузеров

  • Крупный enterprise — существующие инвестиции в Selenium Grid

  • Мобильное тестирование — интеграция с Appium

Спонсоры Selenium: BrowserStack, Sauce Labs, LambdaTest активно поддерживают развитие Selenium и строят свои платформы вокруг него.

6. Сравнение с Cypress: третий игрок

Нельзя сравнивать Selenium и Playwright без упоминания Cypress — третьего по популярности фреймворка.

КритерийSeleniumPlaywrightCypress

Архитектура

Вне браузера (WebDriver)Вне браузера (CDP)Внутри браузера (DOM)

Браузеры

Все, включая IEChromium, Firefox, WebKitChrome, Firefox, Edge (нет Safari)

Языки

7+4Только JavaScript

Параллелизация

Grid (сложная)Встроенная (бесплатно)Платная (Dashboard)

Multi-tab/domains

ПоддержкаПолнаяОграниченная

Debugging

БазовыйTrace Viewer, UI modeTime-travel debugging

Learning curve

ВысокаяСредняяНизкая

Когда выбрать Cypress

Подходит для: быстрый старт и прототипирование, небольшие команды с фокусом на Chrome, frontend-разработчики, пишущие тесты, JavaScript/TypeScript-only проекты.

Ограничения: нет нативной поддержки Safari, проблемы с cross-origin тестированием, платная параллелизация, только JavaScript.

7. Selenium 4/5 и WebDriver BiDi: контратака

Selenium не стоит на месте. WebDriver BiDi (BiDirectional) — это новый стандарт W3C, который приносит в Selenium преимущества, ранее доступные только в Playwright.

Что такое WebDriver BiDi

WebDriver BiDi — стандарт, позволяющий двустороннюю real-time коммуникацию между тестами и браузером через WebSocket. Это означает:

  • Events push — браузер сам отправляет события (network, console, exceptions)

  • Network interception — перехват и модификация запросов

  • Console logging — мгновенный доступ к console.log

  • Cross-browser — в отличие от CDP, работает во всех браузерах

Текущий статус (2025)

ФреймворкПоддержка BiDi

Selenium

Полная (начиная с 4.1.2, расширено в 5.x)

Playwright

Экспериментальная (в разработке)

WebDriverIO

Поддержка

Puppeteer

В разработке

Перспектива: WebDriver BiDi может уравнять возможности Selenium и Playwright. Однако стандарт ещё в разработке, и полная поддержка всех браузеров займёт время.

8. API Testing: неожиданное преимущество Playwright

Playwright — это не только UI-автоматизация. Встроенная поддержка API-тестирования делает его универсальным инструментом.

REST API Testing

// Playwright: API тестирование без браузера
const { request } = require('@playwright/test');

test('API: создание пользователя', async () => {
  const context = await request.newContext({
    baseURL: 'https://api.example.com'
  });

  const response = await context.post('/users', {
    data: { name: 'John', email: 'john@example.com' }
  });

  expect(response.ok()).toBeTruthy();
  expect(await response.json()).toHaveProperty('id');
});

GraphQL Testing

// Playwright: GraphQL запросы
test('GraphQL: получение списка товаров', async ({ request }) => {
  const response = await request.post('/graphql', {
    data: {
      query: `query GetProducts { products(limit: 10) { id name price } }`
    }
  });

  const { data } = await response.json();
  expect(data.products).toHaveLength(10);
});

Selenium: нужны дополнительные библиотеки

Для API-тестирования в Selenium-стеке используют:

  • RestAssured (Java)

  • Requests (Python)

  • Axios/SuperTest (JavaScript)

Преимущество Playwright: Один инструмент для UI и API тестов означает единую инфраструктуру, общие утилиты и проще CI/CD.

9. CI/CD интеграция: практическое сравнение

Playwright: минимальная конфигурация

GitHub Actions

# .github/workflows/playwright.yml
name: Playwright Tests
on: [push, pull_request]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
      - run: npm ci
      - run: npx playwright install --with-deps
      - run: npx playwright test

Docker

# Официальный образ со всеми браузерами
FROM mcr.microsoft.com/playwright:v1.57.0-noble

WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
CMD ["npx", "playwright", "test"]

Selenium: больше настроек

Jenkins Pipeline

pipeline {
  agent any
  stages {
    stage('Setup') {
      steps {
        sh 'wget https://chromedriver.storage.googleapis.com/...'
        sh 'chmod +x chromedriver'
      }
    }
    stage('Test') {
      steps {
        sh 'mvn test -Dwebdriver.chrome.driver=./chromedriver'
      }
    }
  }
}

Сравнение CI/CD опыта

АспектPlaywrightSelenium

Установка

1 команда (npm i + install)Отдельные драйверы для каждого браузера

Docker

Официальные образы от MicrosoftSelenium Hub + Node images

Параллелизация

--workers=4 (встроено)Selenium Grid (отдельная инфраструктура)

Отчёты

HTML, JSON, Trace ViewerНужен Allure/ExtentReports

10. Зарплаты и карьера: что выгоднее учить

Зарплаты автоматизаторов в 2025

США

УровеньЗарплата ($/год)
Entry-level$61K - $97K
Middle (2-4 года)$102K - $116K
Senior (5+ лет)$150K - $187K

Россия

УровеньЗарплата (₽/мес)
Junior60K - 100K
Middle150K - 200K
Senior300K - 450K

Playwright skills = премиум к зарплате

Вакансии с Playwright платят на 9% больше ($9,610/год), чем средняя позиция QA Automation Engineer.

Востребованные стеки

СтекЯзыкиТренд

Playwright + TypeScript

JavaScript/TypeScript↑ Быстрый рост

Selenium + Java

Java + TestNG/JUnit→ Стабильно (enterprise)

Playwright + Python

Python + pytest↑ Рост

Selenium + Python

Python + pytest→ Стабильно

Cypress

JavaScript→ Стагнация

11. Что учить: рекомендации по уровням

Начинающий автоматизатор (0-1 год)

Рекомендация: начните с Playwright

Почему: более современный и понятный API, меньше boilerplate-кода, auto-wait снижает количество flaky tests, отличная документация и обучающие ресурсы, codegen позволяет записывать тесты, востребован на рынке с премиумом к зарплате.

Roadmap для начинающего

  1. Изучить основы JavaScript/TypeScript или Python

  2. Пройти курс Microsoft Learn: Build with Playwright

  3. Изучить Test Automation University (бесплатно)

  4. Написать тесты для pet-проекта

  5. Освоить Page Object Model

  6. Настроить CI/CD (GitHub Actions)

Middle-автоматизатор (1-3 года)

Рекомендация: изучите оба инструмента

На уровне Middle вам нужно уметь работать с legacy-кодом и принимать архитектурные решения. Многие компании имеют существующие Selenium-тесты.

Что изучить: глубокое понимание Playwright (API testing, network mocking), базовое знание Selenium (чтение и поддержка), Selenium Grid для распределённого тестирования, Docker-контейнеризация тестов, Allure/ReportPortal для отчётов, Performance testing (k6, Artillery).

Senior/Lead (3+ года)

Рекомендация: владейте всем стеком + архитектура

Что изучить: проектирование тестовой архитектуры, миграция с Selenium на Playwright, WebDriver BiDi (будущее), Appium для мобильного тестирования, Visual regression testing, AI/ML в тестировании.

12. Практическое сравнение: один и тот же тест

Задача: логин + проверка dashboard

Selenium (Java)

@Test
public void testLogin() {
  WebDriver driver = new ChromeDriver();
  WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));

  try {
    driver.get("https://app.example.com/login");

    wait.until(ExpectedConditions.visibilityOfElementLocated(
      By.id("email")
    )).sendKeys("user@example.com");

    driver.findElement(By.id("password")).sendKeys("password123");
    driver.findElement(By.cssSelector("button[type='submit']")).click();

    wait.until(ExpectedConditions.urlContains("/dashboard"));

    WebElement welcomeText = wait.until(
      ExpectedConditions.visibilityOfElementLocated(By.className("welcome"))
    );

    Assert.assertTrue(welcomeText.getText().contains("Welcome"));
  } finally {
    driver.quit();
  }
}

Playwright (TypeScript)

test('login and verify dashboard', async ({ page }) => {
  await page.goto('https://app.example.com/login');

  await page.fill('#email', 'user@example.com');
  await page.fill('#password', 'password123');
  await page.click('button[type="submit"]');

  await expect(page).toHaveURL(/dashboard/);
  await expect(page.locator('.welcome')).toContainText('Welcome');
});

Анализ различий

АспектSeleniumPlaywright

Строк кода

~20~8

Явные waits

3 шт.0 (auto-wait)

Cleanup

try/finally + quit()Автоматический

Assertions

Assert.assertTrue (generic)expect (web-specific)

13. Миграция с Selenium на Playwright

Если ваша команда решила мигрировать — вот практические шаги.

Стратегия миграции

  1. Новые тесты — пишите на Playwright

  2. Критичные тесты — переносите постепенно

  3. Legacy — оставьте на Selenium (поддержка)

  4. Параллельный запуск — оба фреймворка в CI

Типичные изменения

SeleniumPlaywright

driver.findElement(By.id("x"))

page.locator('#x')

element.sendKeys("text")

page.fill('#x', 'text')

element.click()

page.click('#x')

WebDriverWait + ExpectedConditions

Не нужно (auto-wait)

driver.get(url)

page.goto(url)

Assert.assertEquals

expect(locator).toHaveText()

Совет: Не делайте «big bang» миграцию. Параллельное существование Selenium и Playwright — нормальная практика для переходного периода.

14. Чек-лист: какой инструмент выбрать

Выбирайте Playwright, если:

  • Новый проект без legacy-тестов

  • Современный SPA (React, Vue, Angular)

  • Нужна скорость выполнения тестов

  • Требуется API-тестирование в том же фреймворке

  • Работаете с TypeScript/JavaScript или Python

  • Важна простота CI/CD интеграции

  • Нужен modern debugging (Trace Viewer)

Выбирайте Selenium, если:

  • Существующая Selenium-инфраструктура

  • Требуется поддержка Java, C#, Ruby, PHP

  • Нужна интеграция с Appium (mobile)

  • Legacy-браузеры (IE, старые версии)

  • Selenium Grid уже настроен

  • Enterprise compliance требует стандартизации

Выбирайте Cypress, если:

  • Небольшой frontend-проект

  • Команда работает только с JavaScript

  • Достаточно Chrome-based тестирования

  • Важен быстрый onboarding для frontend-разработчиков

Заключение

В 2025 году рынок автоматизации тестирования находится в точке перелома.

Playwright: #1 по популярности (TestGuild), 19M скачиваний в неделю, +235% рост год к году, выбор для новых проектов.

Selenium: 39% доля рынка, 15.4M разработчиков, стандарт для enterprise, WebDriver BiDi как ответ на вызовы.

Итоговые рекомендации

СитуацияРекомендация
Начинающий автоматизаторPlaywright (потом изучите Selenium)
Новый проектPlaywright
Enterprise/legacySelenium (с планом на BiDi)
Мобильное тестированиеSelenium + Appium
Максимальная скоростьPlaywright
Java/C# командаSelenium или Playwright (.NET/Java)

«Лучший инструмент — тот, который решает задачи вашей команды. Playwright побеждает в современных метриках, но 31,000+ компаний продолжают успешно использовать Selenium. Знание обоих — ваше конкурентное преимущество.»

Прогнозируемый рост спроса на QA Automation специалистов до 2030 года составляет 20% (U.S. Bureau of Labor Statistics).

А лучшие вакансии для тестировщиков ищите на hirehi.ru