Запуск Chrome WebDriver на сервере Linux без дисплея

Я хотел бы запустить автоматические тесты с использованием хромированного веб-драйвера selenium2 на сервере Linux.

Я уже настроил firefox для работы на сервере с помощью Xvfb (см. http://www.semicomplete.com/blog/geekery/xvfb-firefox.html) и хотел бы сделать что-то подобное с хромом. Это возможно?


person Snukker    schedule 11.08.2011    source источник
comment
Да, это должно работать нормально. Что ты пробовал?   -  person jarib    schedule 11.08.2011


Ответы (4)


Мне не удалось найти способ сделать это программно для ChromeDriver, как вы можете с FirefoxBinary.

Я отправил запрос на улучшение, к которому прилагается исправление, позволяющее это сделать. Вы можете увидеть это здесь: http://code.google.com/p/selenium/issues/detail?id=2673

Изменить: вы можете увидеть ниже ответ Стивена о том, как использовать это, теперь изменение было объединено: https://stackoverflow.com/a/16619608/998442

person Jaie Wilson    schedule 17.10.2011
comment
похоже, ваш запрос на улучшение отмечен как исправленный. не могли бы вы изменить свой ответ, чтобы объяснить, как использовать исправление? - person Andrey Fedorov; 15.07.2015
comment
Обновлено: добавлена ​​ссылка на ответ Стивена ниже, показывающий, как установить переменную среды отображения. - person Jaie Wilson; 29.09.2017

Я столкнулся с той же проблемой, установив в Linux-боксе селен + хромированный драйвер, и вот мои заметки:

Предварительные требования:

  1. Установите JRE для запуска selenium jar

  2. Установите селен-сервер

    возьмите файл jar из https://code.google.com/p/selenium/downloads/list)

  3. Установите xvfb (похоже, вы уже достигли этой части)

  4. Установите google-chrome для вашего дистрибутива Linux

  5. Загрузите драйвер Chrome. Его можно получить отсюда: https://sites.google.com/a/chromium.org/chromedriver/downloads

  6. Установите другие зависимости селена, которые могут вам понадобиться (но указанное выше является минимумом для работы chromedriver)

Бежать:

  1. Запустите xvfb

Xvfb :1 -screen 5 1024x768x8 &

export DISPLAY=:1.5

  1. Запустите банку сервера selenium с параметрами ChromeDriver. Это будет выглядеть примерно так:

java -jar selenium-server-standalone-2.30.0.jar -Dwebdriver.chrome.bin=/path/to/google-chrome -Dwebdriver.chrome.driver=/path/to/chromedriver

  1. Журнал сервера селена должен выводить что-то подобное:

19 марта 2013 г. 10:07:27 org.openqa.grid.selenium.GridLauncher основная ИНФОРМАЦИЯ: Запуск автономного сервера

Установка системного свойства webdriver.chrome.bin на {расположение google-chrome}

Установка системного свойства webdriver.chrome.driver на {расположение chromedriver}

10: 07: 34.258 ИНФОРМАЦИЯ - экземпляры RemoteWebDriver должны подключаться к: http://127.0.0.1:4444/wd/hub

10: 07: 34.259 ИНФОРМАЦИЯ - Версия Jetty / 5.1.x 10: 07: 34.259 ИНФОРМАЦИЯ - Запущенный HttpContext [/ selenium-server / driver, / selenium-server / driver] ...

Ссылка: http://www.yann.com/en/use-xvfb-selenium-and-chrome-to-drive-a-web-browser-in-php-23/08/2012.html

Ваше здоровье!

person Hafiz Ismail    schedule 20.03.2013

Согласно SetEnvironmentProperty для ChromeDriver программно, вы можете сделать следующее:

service = new ChromeDriverService.Builder()
    .usingChromeDriverExecutable(new File("/path/to/chromedriver"))
    .usingAnyFreePort()
    .withEnvironment(ImmutableMap.of("DISPLAY",":20"))
    .build();

Вот документация для withEnvironment

person Stephen Ostermiller    schedule 18.05.2013
comment
Заменил битую ссылку ссылкой на документацию - person Stephen Ostermiller; 20.07.2014

Я понимаю, что вы пытаетесь сделать, но вы, вероятно, просто запускаете селеновую сетку. Это было сделано для автоматического тестирования браузеров. Отлично работает на сервере.

https://www.selenium.dev/documentation/en/grid/

person CENTURION    schedule 29.04.2020