org.openqa.selenium.os.UnixProcess checkForError-Selenium无法通过jenkins工作(openshift linux-chrome slave) [英] org.openqa.selenium.os.UnixProcess checkForError - Selenium doesn't work over jenkins (openshift linux - chrome slave)

查看:76
本文介绍了org.openqa.selenium.os.UnixProcess checkForError-Selenium无法通过jenkins工作(openshift linux-chrome slave)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

硒代码在我的本地计算机上有效.但是,由于与jenkins控制台输出有关的服务器连接错误,它无法在jenkins上运行.

Selenium code works my local. However it doesn't work over jenkins because of server connection error regarding to jenkins console output.

Jenkins具有openshift结构和chrome slave.我已经设置了硒可以在chrome节点上运行的配置.

Jenkins has openshift structure and chrome slave. I've set the configuration that selenium would work on chrome node.

我也将硒代码写为bdd(黄瓜).

I've also written the selenium codes as bdd (cucumber).

这是初始化webDriver的方式:

This is how webDriver is initialized:

ChromeOptions options = new ChromeOptions();
System.setProperty("webdriver.chrome.driver","/usr/bin/google-chrome");
options.addArguments("--disable-web-security");
options.addArguments("--ignore-urlfetcher-cert-requests");
options.addArguments("--disable-renderer-backgrounding");
options.addArguments("--disable-infobars");
options.addArguments("--start-maximized");
options.addArguments("--no-sandbox");
if (isHeadless) {
    options.addArguments("--headless");
}
webDriver = new ChromeDriver(options);

詹金斯的输出是:

2019-02-12 16:14:54 [main] INFO TestingConfig:65-正在加载 TestingConfig

2019-02-12 16:14:54 [main] INFO TestingConfig:65 - Loading TestingConfig

(google-chrome:7834):Gtk警告**:16:14:57.172:无法打开 显示:2019年2月12日下午4:15:15 org.openqa.selenium.os.UnixProcess checkForError严重:org.apache.commons.exec.ExecuteException: 进程退出并出现错误:1(退出值:1)

(google-chrome:7834): Gtk-WARNING **: 16:14:57.172: cannot open display: Feb 12, 2019 4:15:15 PM org.openqa.selenium.os.UnixProcess checkForError SEVERE: org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1)

方案:添加新方案# 功能/AddNewScenario.feature:11 鉴于我已经显示了新方案页面#AddingNewScenarioTest.iVeAlreadyDisplayScenarioPage() org.openqa.selenium.WebDriverException:等待驱动程序服务器启动时超时. 内部版本信息:版本:'3.5.2',版本:'10229a9',时间:'2017-08-21T17:29:55.15Z' 系统信息:主机:'jenkins-agent-blue-1',ip:'127.0.1.1',操作系统名称:'Linux',os.arch:'amd64',os.version: '3.10.0-957.1.3.el7.x86_64',java.version:'1.8.0_161' 驱动程序信息:driver.version:ChromeDriver 在org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:192) 在org.openqa.selenium.remote.service.DriverService.start(DriverService.java:178) 在org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:78) 在org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:641) 在org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:254) 在org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:236) 在org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:137) 在org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:178) 在org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:167) 在org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:156) 在com.bmw.scmaer.testing.utils.WebBrowser.init(WebBrowser.java:50) 在com.bmw.scmaer.testing.steps.AddingNewScenarioTest.iVeAlreadyDisplayScenarioPage(AddingNewScenarioTest.java:22) 在✽.鉴于我已经显示了场景页面(功能/AddNewScenario.feature:12) 引起原因:org.openqa.selenium.net.UrlChecker $ TimeoutException:等待[ http://超时localhost:3437/status] 可用 20004毫秒后 在org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:102) 在org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:187) 在org.openqa.selenium.remote.service.DriverService.start(DriverService.java:178) 在org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:78) 在org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:641) 在org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:254) 在org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:236) 在org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:137) 在org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:178) 在org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:167) 在org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:156) 在com.bmw.scmaer.testing.utils.WebBrowser.init(WebBrowser.java:50)

Scenario: add new scenario # features/AddNewScenario.feature:11 Given I've already display New Scenario Page # AddingNewScenarioTest.iVeAlreadyDisplayScenarioPage() org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start. Build info: version: '3.5.2', revision: '10229a9', time: '2017-08-21T17:29:55.15Z' System info: host: 'jenkins-agent-blue-1', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '3.10.0-957.1.3.el7.x86_64', java.version: '1.8.0_161' Driver info: driver.version: ChromeDriver at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:192) at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:178) at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:78) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:641) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:254) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:236) at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:137) at org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:178) at org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:167) at org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:156) at com.bmw.scmaer.testing.utils.WebBrowser.init(WebBrowser.java:50) at com.bmw.scmaer.testing.steps.AddingNewScenarioTest.iVeAlreadyDisplayScenarioPage(AddingNewScenarioTest.java:22) at ✽.Given I've already display Scenario Page(features/AddNewScenario.feature:12) Caused by: org.openqa.selenium.net.UrlChecker$TimeoutException: Timed out waiting for [http://localhost:3437/status] to be available after 20004 ms at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:102) at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:187) at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:178) at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:78) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:641) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:254) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:236) at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:137) at org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:178) at org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:167) at org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:156) at com.bmw.scmaer.testing.utils.WebBrowser.init(WebBrowser.java:50)

其他问题:为什么它尝试连接到 http://localhost:3437/status 吗?

Additional question: Why did it try to connect to http://localhost:3437/status ?

推荐答案

您需要在System.setProperty()行中传递chromedriver二进制文件的绝对位置,而不是google-chrome二进制文件的绝对位置,如下所示:

Instead of the absolute location of google-chrome binary you need to pass the absolute location of chromedriver binary within System.setProperty() line as follows:

System.setProperty("webdriver.chrome.driver","/path/to/chromedriver");

这篇关于org.openqa.selenium.os.UnixProcess checkForError-Selenium无法通过jenkins工作(openshift linux-chrome slave)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆