Интеграция WebDriver, ChromeDriver, Selenium и Jenkins

У меня есть сценарий селена, написанный в eclipse, который вызывает ChromeDriver, который запускает URL-адрес, читает заголовок и закрывает браузер. Я могу успешно выполнить это в Eclipse, а также в командной строке.

Однако, когда я создаю задание Jenkins с подпрограммой сборки (через пакетную команду выполнения), сборка продолжает работать в течение длительного времени. После отслеживания с помощью операторов sysout я обнаружил, что сборка останавливается на drive.get().

driver.get("google.com");

Сбой сборки с сообщением об ошибке ниже после долгого ожидания:

Starting ChromeDriver 2.15.322448 (52179c1b310fec1797c81ea9a20326839860b7d3) on port 39626
Only local connections are allowed.
[304.538][SEVERE]: Timed out receiving message from renderer: 298.714
[904.539][SEVERE]: Timed out receiving message from renderer: 600.000
[914.540][SEVERE]: Timed out receiving message from renderer: 10.000

Build step 'Execute Windows batch command' marked build as failure
Finished: FAILURE

person Shankar    schedule 26.06.2015    source источник


Ответы (2)


Selenium Webdriver действительно нуждается в отображении для работы (X-сервер, если быть точным).

Вы можете использовать Xvfb для запуска в безголовом режиме, подробная инструкция (немного устаревшая, но все еще актуальная) - http://alex.nederlof.com/blog/2012/11/19/installing-selenium-with-jenkins-on-ubuntu/

person sap1ens    schedule 26.06.2015
comment
Спасибо за подробности. Я прочитал документацию и установил плагин xvnv, который эквивалентен Windows. ссылка Но это не решило проблему. Я все еще сталкиваюсь с той же проблемой. - person Shankar; 26.06.2015
comment
Хм... можете ли вы еще раз проверить, определена ли переменная DISPLAY при запуске сборки? Вы можете просто использовать шаг сборки оболочки Execute в Jenkins и распечатать переменную. - person sap1ens; 26.06.2015
comment
Я переустановил свой JDK, jenkins и попробовал то же самое с проектом maven. Работа по сборке прошла нормально, как и ожидалось. Я не настраивал селеновую сетку/xvnv. - person Shankar; 23.07.2015

Вы должны изменить код на

driver.get("http://google.com");

вы, должно быть, видели ошибку, запущенную из eclipse и командной строки.

person Sandeep    schedule 26.06.2015
comment
Я не упомянул http в своем вопросе здесь, но это было в моем исходном коде. вы правы, для вызова любого URL-адреса из источника требуется http или https. - person Shankar; 26.06.2015
comment
Если у вас был http в исходном коде, я его не вижу. Я вижу только то, что вы здесь написали. Какой смысл помечать ответ вниз. Плохое отношение!!! - person Sandeep; 26.06.2015