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

Я хотел бы запустить автоматические тесты с помощью chrome webdriver selenium2 на сервере linux.

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

3 ответов


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

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

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


я столкнулся с той же проблемой установки коробки linux с selenium + chromedriver, а вот мои заметки:--5-->

предварительные вопросы и ответы:

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

  2. установите сервер selenium

    возьмите файл 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. журнал сервера selenium должен выводить что-то подобное этому:

Mar 19, 2013 10:07: 27 am org.openqa.сетка.селен.Gridlauncher main INFO: запуск автономного сервер

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

настройка системного свойства webdriver.хром.драйвер для {местоположение chromedriver}

10: 07: 34.258 INFO - экземпляры RemoteWebDriver должны подключаться к:http://127.0.0.1:4444/wd/hub

10: 07: 34.259 INFO - версия Jetty/5.1.икс 10: 07: 34.259 INFO-Started HttpContext[/селен-сервер/драйвер, / селен-сервер / драйвер] ...

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

Ура!


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

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

здесь документация withEnvironment