Будет ли Selenium работать над Ubuntu без GUI

Я использую Codeception на различных облачных платформах, таких как Amazon AWS и Cloud 9. Ни один из них не имеет графического интерфейса по умолчанию. Мой вопрос: можете ли вы запустить Selenium на этом типе системы? Или мне нужно каким-то образом получить графический интерфейс?

Selenium – это только библиотека, и поэтому не особенно заботится о том, запускаете ли вы ее в системе, оснащенной графическим интерфейсом. Вероятно, вы спрашиваете: если я использую Selenium для открытия браузера, этот браузер будет работать в системе без GUI. Ответ на этот вопрос: это зависит!

Существуют безголовые браузеры: браузеры, у которых также нет компонента GUI. HtmlUnit упакован с Selenium. Другим популярным браузером является PhantomJS , у которого есть сторонняя библиотека привязок Selenium под названием GhostDriver . Лично я бы избегал обоих ! В HtmlUnit используется механизм JavaScript, который ни один из поддерживаемых настольных браузеров не поддерживается, и поэтому тесты не очень надежны. GhostDriver не поддерживался в течение 2 лет , и как таковой также приводит к ненадежным результатам. PahntomJS определенно является опцией, поскольку он использует WebKit – движок, который находится в браузерах Safari и Chrome, но вам придется писать свой собственный API .

Большинство систем позволят вам иметь виртуальный графический интерфейс. Вы упомянули Ubuntu, который является производным Debian. В Сети есть несколько руководств, в которых рассказывается, как установить Xvfb, большинство из которых являются неполными или неправильными. На Debian вы устанавливаете безгласный браузер следующим образом:

  1. Установка Xvfb: apt-get install xvfb
  2. Установите браузер. Предполагая, что вы используете сервер Debian, вы не сможете установить что-то вроде Firefox с apt-get, потому что репозиториев нет. Вместо Google что-то вроде «Firefox off-line install» или любого другого браузера, который вы хотите использовать, а затем используйте wget на своем сервере для захвата пакета.
  3. Распакуйте пакет где-нибудь как /usr/local/lib , а затем создайте мягкую ссылку из /usr/local/bin в двоичный файл, который запускает браузер.
  4. Теперь попробуйте запустить ваш браузер без головы. Например, для Firefox вы должны попробовать: xvfb-run firefox . Это может привести к некоторым ошибкам, которые вы должны исправить. В моем случае мне не хватало библиотеку libdbus-glib-1-2 которую я мог установить, просто используя apt-get.
  5. На этом этапе вам нужно будет запустить Xvfb, прежде чем запускать тесты Selenium. На большинстве серверов CI есть плагин для Xvfb, или вы можете сделать это из командной строки: Xvfb :99 & . Дополнительную информацию см. В документах .