【发布时间】:2020-12-09 14:02:22
【问题描述】:
我在 Selenium/Java 测试类中有以下代码。现在,我已将这段代码推送到 GitHub。 另外,我已经设置了 Jenkins 作业来执行相同的代码(在 Jenkins 作业中,我将代码指向了 GitHub)。 Jenkins 作业触发良好并开始执行测试,但在打开浏览器时抛出错误。 测试用例应该是打开火狐浏览器,但是火狐浏览器打不开。
所以,我的问题是,如果我想在 Jenkins 作业中执行测试用例(Jenkins 服务器在 Cento7.4 OS 中运行),下面的 selenium 代码是否正确。
注意:在同一个 CentOS 虚拟机中,我能够在 eclipse 中执行相同的(如下)selenium 代码,它能够打开 Firefox 浏览器并打开 URL,没有任何问题。 只有当我尝试在 Jenkins 服务器中运行与 Jenkins 作业相同的代码时,才会出现问题。
硒代码
System.setProperty("webdriver.gecko.driver", "geckodriver");
FirefoxOptions firefoxOptions = new FirefoxOptions();
firefoxOptions.addArguments("--display=0");
WebDriver driver = new FirefoxDriver(firefoxOptions);
driver.get("https://www.facebook.com");
Jenkins 作业输出
Running TestSuite
Failed to open connection to "session" message bus: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
1597912923234 mozrunner::runner INFO Running command: "/bin/firefox" "-marionette" "--display=0" "-foreground" "-no-remote" "-profile" "/tmp/rust_mozprofileFz0Zr2"
Failed to open connection to "session" message bus: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
Running without a11y support!
Error: cannot open display: 0
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.972 sec <<< FAILURE!
Results :
Failed tests: loginTest4(com.training.browsers.LinuxTest): invalid argument: can't kill an exited process
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0
[ERROR] There are test failures.
xauth list 输出
[root@localhost ~]# xauth list
localhost.localdomain/unix:0 MIT-MAGIC-COOKIE-1 4eb74af687f2dbc022ef03617614456e
#ffff#6c6f63616c686f73742e6c6f63616c646f6d61696e#:0 MIT-MAGIC-COOKIE-1 4eb74af687f2dbc022ef03617614456e
【问题讨论】:
-
不相关但...请确保您没有在“root”下运行测试。在大多数情况下,普通用户帐户就足够了
标签: java selenium jenkins testing automation