Playwright набирает 47,9 млн еженедельных загрузок из npm против 7,3 млн у Cypress: разрыв в 6 раз отражает то где в 2026 году стартуют новые проекты. Причины структурные: Playwright полностью устранил управление браузерными драйверами, встроил автоожидание в каждое взаимодействие так что тестам не нужен шаблонный код WebDriverWait, поставляет бесплатный шардинг между машинами который Cypress прячет за платный план, и остаётся единственным фреймворком с реальной поддержкой WebKit для тестирования Safari вне macOS. Статья объясняет что архитектурно не так со Selenium, где не хватает Cypress, и что разрыв в усыновлении означает для твоего пути обучения.

Цифры

Страница наград State of JS 2025 подтверждает: Playwright разделил первое место по относительному росту использования среди тест-инструментов, плюс 14 процентных пунктов год к году. На npmtrends.com Playwright получает около 47,9 млн еженедельных загрузок против 7,3 млн у Cypress. Звёзды на GitHub: 86 000 у Playwright против 49 000 у Cypress.

Это не метрики тщеславия. Загрузки npm отслеживают реальное принятие в проектах. Когда фреймворк выбирают для новых проектов в 6 раз чаще чем ближайшего конкурента, экосистема следует за ним: больше туториалов, больше ответов на Stack Overflow, больше вакансий где он указан как требование.

Если начинаешь с нуля в 2026 году, Playwright: туда движется индустрия.

Что пошло не так у Selenium

Selenium не плохой. Он работает. Но он проектировался в другую эпоху: когда JavaScript был проще, когда SPA не существовало, когда «ожидание элементов» означало добавить Thread.sleep(3000) и надеяться на лучшее.

Проблемы:

Управление драйверами. Selenium требует браузерный драйвер (ChromeDriver, GeckoDriver) который должен точно соответствовать версии браузера установленной на машине. Обновление Chrome ломает тесты до тех пор пока не обновишь ChromeDriver. Это совершенно ненужная нагрузка по поддержке которую Playwright устранил. Нет встроенного ожидания. Selenium находит элемент и немедленно пытается с ним взаимодействовать. Если элемент ещё не готов, тест падает. Каждая команда в итоге строит собственные утилиты ожидания: ExpectedConditions в Java, WebDriverWait с кастомным поллингом. Playwright делает это автоматически. Java-ориентированный дизайн. Selenium строился для Java. JavaScript-биндинги работают но ощущаются как запоздалое добавление. Playwright строился для Node.js с первого дня. Нет встроенного тест-раннера. Selenium: библиотека автоматизации браузера, не тест-фреймворк. Нужно отдельно добавлять тест-раннер (JUnit, TestNG, pytest, Jest), связывать их вместе, настраивать репортеры. Playwright поставляет всё из коробки.

Что Playwright делает иначе

Автоожидание. Каждое действие Playwright ожидает пока элемент не станет готов к взаимодействию перед тем как продолжить. Клик ждёт пока элемент станет видимым, включённым и стабильным. Fill ждёт пока инпут станет редактируемым. Это устраняет целый класс ошибок «element not interactable» и «stale element reference» которые преследуют тесты на Selenium.

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

// Эквивалент на Selenium — что реально приходилось писать
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
WebElement button = wait.until(ExpectedConditions.elementToBeClickable(
    By.xpath("//button[text()='Submit']")
));
button.click();

Всё из коробки. Playwright поставляет тест-раннер, библиотеку ассёртов, HTML-репортер, trace viewer, запись видео, сравнение скриншотов, перехват сети и кодогенератор. Устанавливаешь один пакет и получаешь полноценную тест-платформу. Несколько браузеров, один API. Playwright запускает тесты в Chromium, Firefox и WebKit (движок Safari) с идентичным кодом. Никаких отдельных драйверов, никаких браузер-специфичных конфигураций. Один playwright.config.ts запускает набор тестов во всех трёх. Современные локаторы. API локаторов Playwright использует селекторы на основе ролей которые соответствуют тому как пользователи и скринридеры взаимодействуют со страницей:

page.getByRole('button', { name: 'Sign in' })
page.getByLabel('Email address')
page.getByPlaceholder('Search...')
page.getByTestId('submit-btn')

Эти локаторы устойчивы. Изменение CSS-класса или реструктуризация HTML не ломает их. Изменение доступного имени кнопки ломает их. Это именно то что нужно, потому что это реальное изменение которое влияет на пользователей.

Почему не Cypress

Cypress был современной альтернативой Selenium до появления Playwright. Это по-настоящему хороший инструмент. Но у него есть архитектурные ограничения которых нет у Playwright:

Только Chromium (с ограниченной поддержкой Firefox). Playwright поддерживает Chromium, Firefox и WebKit. Кросс-браузерное покрытие требует Playwright. Ограничение same-origin. Cypress плохо справляется с тестами которые затрагивают несколько доменов, например флоу аутентификации с редиректом на стороннего OAuth-провайдера. Playwright обрабатывает это нативно. Параллелизация требует платного плана. Запуск тестов на нескольких машинах в CI требует Cypress Cloud который стоит денег. Шардинг в Playwright бесплатный и встроенный. Нет мобильной эмуляции. Playwright умеет эмулировать вьюпорт любого устройства, user agent, геолокацию и даже тач-события. Cypress нет.

Разрыв сократился за годы. Cypress добавил компонентное тестирование, улучшил поддержку Firefox и расширил API. Но для полного стека автоматизации без пейволов Playwright: более крепкая основа.

Поддержка Microsoft имеет значение

Playwright строит и поддерживает Microsoft. Это не просто сигнал стабильности. Это означает что инструмент активно разрабатывается инженерами чья работа: поддерживать веб-тестирование в масштабе.

Команда Playwright регулярно выпускает релизы, отвечает на GitHub issues и стабильно опережала экосистему по фичам: trace viewer, UI mode, компонентное тестирование, API-тестирование, и совсем недавно Playwright MCP (Model Context Protocol) для AI-управляемой автоматизации браузера.

Когда делаешь ставку на тест-фреймворк, ты делаешь ставку на команду за ним. Команда Playwright эту ставку заслужила.

Что это значит для твоего пути обучения

Если учишь автоматизацию тестирования в 2026 году:

Учи Playwright первым. Концепции которые освоишь (локаторы, ассёрты, фикстуры, Page Object Model, интеграция с CI) переносятся напрямую если когда-нибудь понадобится другой фреймворк. Учи TypeScript, не чистый JavaScript. Поддержка TypeScript в Playwright первоклассная и TypeScript: профессиональный стандарт для новых проектов. Не трать время на Selenium если этого не требует работа. Если идёшь в компанию которая использует Selenium, освоишь за неделю. Учить Selenium первым потому что «там больше вакансий»: неверный расчёт. Эти legacy-вакансии ещё и наименее склонны к принятию современных практик. Cypress стоит знать в общих чертах. Ты с ним столкнёшься. Понимание архитектурных различий помогает объяснить почему проект выбрал тот или иной инструмент. Именно такие разговоры происходят на технических интервью.

FAQ

Playwright полностью заменит Cypress?

В краткосрочной перспективе вряд ли. У Cypress большая установленная база, и компании не мигрируют тест-фреймворки без веской причины. Но для новых проектов цифры усыновления показывают где делаются выборы.

Selenium умер?

Нет. В корпоративных кодовых базах миллионы строк тестов на Selenium которые никуда не денутся. Selenium 4 активно поддерживается и значительно лучше Selenium 3. Но «активно поддерживается» и «правильный выбор для новых проектов»: разные вещи.

Можно использовать Playwright с Python или Java?

Да. Playwright имеет официальные биндинги для Python, Java и .NET помимо JavaScript/TypeScript. JS/TS-версия наиболее полная и наиболее широко используемая, но базовый API согласован между языками.

Сколько времени нужно чтобы научиться Playwright?

Достаточно чтобы писать реальные тесты: несколько дней. Достаточно чтобы строить поддерживаемый тест-сьют: несколько недель практики. Барьер входа реально низкий.

→ See also: Начало работы с Playwright: первые тесты за 30 минут | Playwright vs Cypress vs Selenium в 2026 году: честное сравнение | Установка Playwright: пошаговое руководство (2026) | Миграция с Selenium (или Cypress) на Playwright: практический план