我有一个用selenium webdriver编写的简单自动化脚本。我需要通过Jenkins执行这个脚本。所以我在Jenkins中配置了这个工作,当试图执行时,我无法打开Firefox浏览器。
控制台输出如下:
Running TestSuite
org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output:
Error: cannot open display: :99
Failed tests:
NewTest.testEasy:25 » WebDriver Failed to connect to binary FirefoxBinary(/usr...
这是我的代码:
@Test
public void testEasy() {
// WebDriver driver = new FirefoxDriver();
WebDriver driver = null;
FirefoxBinary binary = new FirefoxBinary(new File("/usr/bin/firefox"));
binary.setEnvironmentProperty("DISPLAY",System.getProperty("lmportal.xvfb.id",":99"));
driver = new FirefoxDriver(binary,null);
driver.get("https://www.google.co.in/?gfe_rd=cr&ei=drM-V8PiHPPI8AevjriQDA&gws_rd=ssl");
// String title = driver.getTitle();
// AssertJUnit.assertTrue(title.contains("Free Selenium Tutorials"));
// System.out.println("TEST");
}
答案 0 :(得分:8)
错误:无法打开显示:: 99
当我们在jenkins中运行selenium脚本时,它们以无头模式运行,即没有任何显示。因此,他们需要某种虚拟缓冲区,例如Xvfb或类似的。
在这种情况下,脚本正在端口上寻找一些虚拟显示器:99,它没有运行。如果jenkins框是linux,请在运行selenium脚本之前尝试。
Xvfb :99 &
export DISPLAY=:99
答案 1 :(得分:0)
实际上我能够执行脚本。但只有浏览器不可见。我很好。我也测试了失败的测试脚本,并且Jenkins返回了该错误。