我有一个selenium webdriver测试,转换为maven项目,我想通过Jenkins上的xvfb运行 .
显示选择存在问题,但我想尝试其他方法并更改端口,例如 .
这是我得到的错误:
org.openqa.selenium.firefox.NotConnectedException:45000 ms后无法在端口7055上连接到主机127.0.0.1 . Firefox控制台输出:错误:未指定显示错误:未指定显示
这是我的代码:
File ffExe = new File("/usr/bin/firefox");
FirefoxBinary ffox = new FirefoxBinary(ffExe);
ffox.setEnvironmentProperty("DISPLAY", ":21");
WebDriver driver = new FirefoxDriver(ffox, null);
那么,我如何告诉firefox使用另一个端口以及我应该指定哪个端口?
2 回答
有一个系统属性-webdriver.firefox.port可能是yoru查询的答案 . 它列在维基 - http://code.google.com/p/selenium/wiki/FirefoxDriver上,但没有提供相同的文档 . 您可以尝试让我们知道它是否有效:)
问题不在于它无法连接到该端口,而是错误的第二部分,即Jenkins中没有指定显示 . 这就是为Firefox设置显示器可能无法正常工作的原因 .
通过在终端中键入
env
并取下分配给DISPLAY变量的编号,找出您的显示设置 . 例如DISPLAY:1.0
.接下来,您需要在Hudson / Jenkins中设置显示变量 . 导航到Jenkins登录页面,然后单击Manage Jenkins> Manage Nodes> Master> Configure . 选中环境变量复选框,然后在名称框中设置
DISPLAY
,并将值设置为我们的示例:1.0
.此外,您可能需要在终端中使用
xhost +
禁用xhost访问控制 .