Запуск 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-->
предварительные вопросы и ответы:
установите JRE для запуска Selenium jar
-
установите сервер selenium
возьмите файл jar из https://code.google.com/p/selenium/downloads/list)
установить xvfb (вы, кажется, уже достигли этого часть)
установите google-chrome для вашего дистрибутива linux
скачать драйвер chrome Вы можете схватить его отсюда:https://sites.google.com/a/chromium.org/chromedriver/downloads
установите другие зависимости селена, которые вам могут понадобиться (но это минимум, чтобы заставить chromedriver работать)
запуск:
- выполнить xvfb
Xvfb :1 -screen 5 1024x768x8 &
export DISPLAY=:1.5
- запустите серверную банку selenium с параметрами ChromeDriver. Это будет выглядеть примерно так:
java -jar selenium-server-standalone-2.30.0.jar -Dwebdriver.chrome.bin=/path/to/google-chrome -Dwebdriver.chrome.driver=/path/to/chromedriver
- журнал сервера 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();