Как стать автором
Обновить

«Если сайты будут работать лучше — это будет идеально»: интервью с разработчиком Playwright Андреем Лушниковым

Время на прочтение12 мин
Количество просмотров7.5K
Всего голосов 25: ↑25 и ↓0+25
Комментарии2

Комментарии 2

Если кому-то интересно, есть ли в Playwright общие исходники с Puppeteer, то можно посмотреть на эти два файла, например:



Отличаются только копирайтами

Большое спасибо за интервью и за вопрос про Juggler в частности.
Честно говоря, не очень понятно, как команда позиционирует Juggler. С одной стороны, насколько я понял из интервью, Juggler — это протокол именно для FF, который только идеологически связан с CDP, т.е. решает схожие задачи, но не обязательно схожим образом, поскольку некоторая часть протокола очень тесно связана с самим Chrome'ом и фактически не может быть кроссбраузерной.
С другой стороны, Juggler похож на CDP, и Андрей упомянул, что они работают над долгосрочным API. Будет ли это API поверх CDP/Juggler, или Juggler и будет основой для данного API? Будет ли оно кроссбраузерным?


Мне кажется, это важный вопрос для будущих инструментов. Например, если кто-то захочет создать библиотеку на Python, в каком направлении ему следует двигаться?


  1. Библиотека реализует общие методы, которые под капотом используют CDP/Juggler в зависимости от браузера.
  2. Библиотека реализует клиента для кроссбраузерного API.
  3. Библиотека коммуницирует с playwright, запущенным на node js.

По поводу недоверия к пропатченным браузерам: на мой взгляд, проблема не столько в боязни за Rendering Engine. Представьте, что у нас есть веб приложение, и пользователи завели баг для определённой версии браузера (например, баг воспроизводится в FF версии < 70). В итоге мы создаём тест для регресса и гоняем автотесты и для новой версии FF, и для старой. Поскольку, насколько я это понимаю, определённая версия Playwright'а использует свою фиксированную версию браузера, мне, как автоматизатору, теперь необходимо придумать, как прикрутить использование нескольких версий Playwright'а в автотестах: возможно, всё решается разными контейнерами или виртуальными машинами для каждой версии, но, опять же, инфраструктурные затраты несравнимо больше, чем запуск разных версий с одной машины. Не стоит ещё забывать, что в данном случае мы ещё надеемся, что наши тесты совместимы с обеими версиями Playwright'а, особенно если протокол не менялся между версиями.
С другой стороны, проблемы разделения Playwright и браузеров тоже понятны: наверняка, у всех была ситуация, когда при работе с selenium'ом возникала проблема совместимости вебдрайвера с соответствующим браузером из-за различия в версиях.


Желаю удачи и успеха команде и проекту Playwright. Хочется верить, что это будущее автоматизации веб тестирования.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий