Первое знакомство с Playwright

Базовые заметки

В основном по материалам https://blog.logrocket.com/playwright-vs-puppeteer/ ; ниже — заметки

После того как Chrome получил поддержку headless browser — а это была сложная и кропотливая технология, которую поддерживали отдельные разработчики (например, PhantomJS, Selenium), — фреймворки веб-автоматизации начали стремительно обновляться.

О Puppeteer : фреймворк, официально поддерживаемый Chrome (на основе DevTools Protocol), более стабильный, чем PhantomJS (на основе протокола WebDriver).

О Playwright : команда разработчиков пришла из Puppeteer. По сравнению с Puppeteer:

  1. Похожий API (значит, переход почти ничего не стоит)
  2. Некоторые API удобнее (ergonomic) — то есть более семантичны; в коде очень удобно эмулировать разные устройства
  3. Совместим с Firefox и Webkit, но совместимость невысокая (может быть, позже удастся «построить вместе» с командой Puppeteer…)

О выборе технологии: независимо от того, выбирать Playwright / Puppeteer или Cypress / PhantomJS / Selenium (у последних много workaround, но при этом они очень flaky), нужно учитывать:

  1. Кроссбраузерность (по этой статье сейчас лучше всех Playwright, но кто поручится, что Puppeteer и Cypress всегда будут отставать?)
  2. Долгосрочная поддержка (по-моему, это банальность…)
  3. Каждый бизнес-кейс разбирать отдельно (банальность…)

Выбор под задачу

Если это новый проект, советую Playwright; подробное сравнение с другими фреймворками — во 2-й статье раздела Другие источники ниже.

Другие источники

  1. The reckless, infinite scope of web browsers — взгляд на экосистему современных браузеров
  2. Playwright VS Selenium VS Puppeteer VS Cypress — довольно полный многомерный китайский блог, сравнивающий популярные фреймворки веб-автоматизации
  3. Puppeteer, Selenium, Playwright, Cypress – how to choose? — статья, на которую ссылается начало того китайского блога