Запуск Chrome WebDriver на сервере Linux без отображения
Я бы хотел запустить автоматические тесты с помощью selenium2 chrome webdriver на сервере linux.
Я уже настроил firefox для запуска на сервере с помощью Xvfb (см. http://www.semicomplete.com/blog/geekery/xvfb-firefox.html) и хотел бы сделать нечто похожее с хромом. Возможно ли это?
Ответы
Ответ 1
Я не смог найти способ сделать это программно для ChromeDriver, как вы можете, с помощью FirefoxBinary.
Я представил запрос на улучшение, у которого есть патч, который позволяет это сделать. Вы можете увидеть это здесь: http://code.google.com/p/selenium/issues/detail?id=2673
Изменить:
Вы можете видеть ниже ответ Стивена о том, как использовать это, теперь изменение было объединено.: fooobar.com/questions/199302/...
Ответ 2
Я столкнулся с той же проблемой установки Linux-коробки с помощью selenium + хроматографа,
и вот мои заметки:
Pre-Reqs:
Установите JRE для запуска банки с селеном
Установить сервер селена
возьмите файл с банкой из 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 должен выводить что-то похожее на это:
19 марта 2013 г. 10:07:27 org.openqa.grid.selenium.GridLauncher main ИНФОРМАЦИЯ: Запуск автономного сервера
Установка системного свойства webdriver.chrome.bin в {местоположение google-chrome}
Установка системного свойства webdriver.chrome.driver в {местоположение chromedriver}
10:07:34.258 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub
10:07:34.259 INFO - Version Jetty/5.1.x
10:07:34.259 INFO - Started 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
Ура!
Ответ 3
В соответствии с SetEnvironmentProperty для ChromeDriver программно вы можете сделать следующее:
service = new ChromeDriverService.Builder()
.usingChromeDriverExecutable(new File("/path/to/chromedriver"))
.usingAnyFreePort()
.withEnvironment(ImmutableMap.of("DISPLAY",":20"))
.build();
Вот документация для withEnvironment