Каковы преимущества использования Chromeless и Puppeter по сравнению с Selenium?

Мы стремимся заменить наш подход Selenium к автоматизированному сбору веб-данных, и нам порекомендовали Puppeteer или Chromeless.

Одна из вещей, которые мне нравятся, — это возможность безголового работать с Chrome, работающим на AWS lambda. Эта причина была продана как основная причина перехода на Chromeless или Puppeteer. Однако я вижу сообщения в Интернете, указывающие на то, что то же самое можно сделать с Selenium. Если это правда, какие преимущества Chromeless и Puppeteer предлагают по сравнению с Selenium?

Мы собираемся использовать NodeJS


person Chris Morancie    schedule 22.07.2018    source источник
comment
См. № 4 в списке некоторых вопросов, которые все еще не относятся к теме, на странице stackoverflow.com/help/on-topic, особенно в отношении запросы на рекомендации инструмента. Мы стараемся избегать флеймовых войн, и запросы на рекомендации инструментов, как правило, быстро попадают в эту область (к тому же, когда они были разрешены, у нас было много авторов, рассылающих ложные вопросы, на которые отвечала какая-то библиотека, которую они написали и продавали). См. Рекомендации по программному обеспечению для сообщества SE, где такие вопросы приветствуются; проверьте их собственную страницу по теме для руководящих принципов.   -  person Charles Duffy    schedule 22.07.2018
comment
Я не понимаю, как я могу перефразировать вопрос. Я искренне хочу, чтобы мне указали правильный путь. Что может одно, а другое нет   -  person Chris Morancie    schedule 22.07.2018
comment
Отсутствие селена на самом деле является преимуществом. Это пятое колесо со своеобразным API, абсолютно лишним, если вам нужно только управлять безголовым Chrome. Selenium по-прежнему незаменим для расширенной поддержки браузеров. Тем не менее, я вижу в Интернете сообщения о том, что то же самое можно сделать с Selenium — сделайте измерения и решите сами. Поскольку это мертвая древесина, вы можете ожидать улучшения занимаемой площади и производительности.   -  person Estus Flask    schedule 23.07.2018
comment
Хм, интересно, я пытаюсь собрать воедино так что, пожалуйста, потерпите меня. Вы хотите сказать, что сам Chromeless занимает меньше места? Также кажется, что вы говорите, что Chromeless API очень элегантен, в то время как Selenium стал раздутым.   -  person Chris Morancie    schedule 23.07.2018
comment
@ChrisMorancie Я сам не использую Chromeless, но, очевидно, его площадь меньше, чем у Selenium (сам + JRE + драйвер + привязки). То же самое относится и к Puppeteer, он также позаботится об установке портативной копии Chrome. И, очевидно, они более эффективны, потому что нет накладных расходов. Я не могу гарантировать, что Chromeless покрывает все функции Selenium, но Puppeteer предположительно поддерживает.   -  person Estus Flask    schedule 23.07.2018
comment
@ChrisMorancie, если возможны другие варианты, я могу поделиться некоторой информацией об удаленном браузере inli и расширить ответ.   -  person ekostadinov    schedule 25.07.2018


Ответы (1)


Используя как Selenium, так и Puppeteer, вот мои наблюдения относительно того, почему в настоящее время его так настоятельно рекомендуют:

  • Puppeteer действительно легко настроить и запустить. Установка конкретных драйверов не требуется. Просто напишите свои тестовые сценарии, наведите node на ваши сценарии и смотрите, как они работают. Все даже работает параллельно!
  • Это фреймворк с нулевой настройкой, поскольку он поставляется в комплекте с версией Chromium, с которой он работает лучше всего.
  • Еще одно преимущество — скорость. Puppeteer работает очень быстро, так как использует безголовый Chrome.
  • Он очень хорошо интегрируется с другими популярными средами тестирования, такими как jest и mocha.
  • Использовать API Puppeteers очень просто. Все просто написать, легко понять и в основном позволяет автоматизировать простые взаимодействия с пользователем с помощью одной строки кода.
  • Отлаживать сценарии автоматизации очень просто. Просто установите headless на false и измените slowMo с 0, скажем, на 250, и вы сможете легко увидеть, что происходит, и исправить любые проблемы, которые могут у вас возникнуть.
  • Его легко освоить и использовать независимо от вашего предыдущего уровня опыта: в команде, в которой я работаю, все (даже те, у кого нет реального опыта написания скриптов автоматизированного тестирования) считают работу с Puppeteer увлекательной. действительно приятный и расслабленный опыт. Все понимают это в течение нескольких минут после базового исследования и быстро запускают скрипты без хлопот и стресса.

Следует отметить, что Selenium делает все, что делает Puppeteer (и наоборот), но суть Puppeteer не в этом. Puppeteer позволяет команде очень быстро создать большую библиотеку сценариев автоматизации, используя простой в использовании API, и запустить тесты сейчас вместо того, чтобы создавать сверхнадежные среды тестирования, которые работают в разных браузерах и / или кросс-устройство.

Если вам действительно нужно провести кросс-браузерное тестирование, тогда Selenium или, возможно, InternJS (мой личный фаворит) по-прежнему остаются вашим выбором.

Puppeteer поддерживает выполнение тестов только в Chrome, но, в конце концов, гораздо лучше иметь много запущенных тестов (даже если они только в Chrome), чем не иметь ни одного.

person AJC24    schedule 23.07.2018
comment
Спасибо @AJC24. Это согласуется с тем, что моя команда сейчас говорит мне. Очень хорошо сказано!! - person Chris Morancie; 23.07.2018
comment
Без проблем! Очень рад помочь. Кукольник великолепен. Действительно простой в использовании и очень мощный. - person AJC24; 23.07.2018