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

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

Люди тоже просят WebGL в headless-режиме
Он работает уже год в Headless без всяких проблем
У него нет реальной отрисовки содержимого, то есть он все отрисовывает в памяти.
За счет этого он потребляет меньше памяти, потому что не нужно отрисовывать картинки или гигабайтные PNG

Я не понял — так он отрисовывает в память или нет? Если да, то к чему тут пассаж про PNG?

Как я понимаю: он полностью размечает весь макет в памяти, размеры, шрифты. Все есть, все можно измерить. Но саму отрисовку всего этого он не делает, пока не запросишь метод скриншота

И это утверждение тоже, мягко говоря, спорное:
Он работает быстрее, потому что ему ничего не нужно отрисовывать на реальном экране.

Отрисовка — копейки по сравнению с измерением текста и лэйаутом.

К тому же он знает размер картинок но распаковку jpeg в биты не производит

Использую headless-режим через Selenium Python, переходить на Puppeteer не готов, т.к. не готов писать на языке, в котором количество async/await на строку > 0.5
Можете колбэк хэлом писать по старинке, если я верно понял в питоне он и используется за неимением await.
В Python async\await появился раньше чем в JS. Но на питоне можно писать обычный синхронный код и не париться
Мы не хотим больше Selenium — давайте нам Puppeteer!

Вот сделали бы сравнение — чем Puppeteer, по-вашему, лучше.
Хотя, какие бы плюсы не нашлись, они вряд-ли перекроют эти два от Selenium: поддержка более одного браузера и громадное количество оберток для всех популярных ЯП.
Для меня плюс это стабильная поддержка проксей. Во всех других виртуальных браузерах для ноды или ни работают вообще, или только какой то один тип.

Вопрос к тем, кто активно использует Puppeteer: насколько сложно\тривиально с ним организовать тест для drag-n-drop? Можно написать что-нибудь вроде:


mouse
  .mouseDown(...getNodeCoordinates(domNode))
  .mouseMove(deltaX, deltaY)
  .mouseUp()

Ну и прочие хитрые штуки, вроде нативного drag-n-drop из ОС (типа перетаскивания файлов на панель). Есть ли поддержка zoom-а страницы? Удобно и вообще возможно работать с window.confirm, window.alert?

насколько сложно\тривиально с ним организовать тест для drag-n-drop?

// Do drag-and-drop
mouse.down(..);
mouse.move(..);
mouse.up(..);

©

Ну и прочие хитрые штуки, вроде нативного drag-n-drop из ОС (типа перетаскивания файлов на панель).

Вряд ли, все что там есть, это то что можно делать в хромиум.

Есть ли поддержка zoom-а страницы?

Можно задать deviceScaleFactor через page.setViewport(viewport)

Удобно и вообще возможно работать с window.confirm, window.alert?

Возможно
Такой вопрос, может кто нибудь (за деньги) написать Puppeteer скрипт для тестирования dataLayer'a (гугл аналитики) и объяснить подробно что как работает?

Я так и не понял, чем Selenium хуже Puppeteer, и зачем с Python переходить на Node.js

Порядок заголовков как-то можно менять ?

Вы можете менять запрос на лету. Это значит, что вы можете полностью менять все его содержимое (body) и его заголовки, инспектировать, даже отменять запрос.

В Selenium такое возможно - изменить содержимое страницы до запуска?

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