Запуск Chrome WebDriver на сервере Linux без отображения - PullRequest
28 голосов
/ 11 августа 2011

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

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

Ответы [ 3 ]

23 голосов
/ 20 марта 2013

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

Pre-Reqs:

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

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

    возьмите файл фляги от 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. Запустите сервер селеном с опциями 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 main ИНФОРМАЦИЯ: Запуск автономного сервера

Установка системного свойства 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 INFO - Версия Jetty / 5.1.x 10: 07: 34.259 INFO - запущен HttpContext [/ selenium-сервер / драйвер, / selenium-сервер / драйвер] ...

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

Ура!

9 голосов
/ 18 мая 2013

В соответствии с Установить программную собственность ChromeDriver программно вы можете сделать следующее:

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

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

6 голосов
/ 17 октября 2011

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

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

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

...