【问题标题】:Error running Selenium UI tests via Firefox on Jenkins在 Jenkins 上通过 Firefox 运行 Selenium UI 测试时出错
【发布时间】:2015-04-07 00:29:00
【问题描述】:

我正在尝试通过 Jenkins 使用 FireFox Webdriver 运行 UI 测试。我正在使用 xvfb 来模拟浏览器,因为构建框没有显示。

我遇到以下错误:

org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure. (user: 'UnknownUser-0', output: '1423245467418')
Build info: version: '2.42.2', revision: '6a6995d31c7c56c340d6f45a76976d43506cd6cc', time: '2014-06-03 10:52:47'
System info: os.name: 'Linux', os.arch: 'amd64', java.version: '1.7.0_25'
Driver info: driver.version: FirefoxDriver
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:593)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:240)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:126)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:191)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:186)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:182)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:95)
    at library.util.BrowserFactory.getFirefoxWebDriver(BrowserFactory.java:126)
    at library.util.BrowserFactory.getWebDriver(BrowserFactory.java:70) 
    at TESTS.myTestPkg.TestSomething.<init>(TestSomething.java:15)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)  
Caused by: org.apache.http.conn.HttpHostConnectException: Connect to 127.0.0.1:7055 [/127.0.0.1] failed: Connection refused
    at org.apache.http.impl.conn.HttpClientConnectionOperator.connect(HttpClientConnectionOperator.java:140)
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:314)
    at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:363)
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:219)
    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:195)
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:86)
    at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:108)
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:186)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57)
    at org.openqa.selenium.remote.HttpCommandExecutor.fallBackExecute(HttpCommandExecutor.java:204)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:173)
    at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.execute(NewProfileExtensionConnection.java:165)
    at org.openqa.selenium.firefox.FirefoxDriver$LazyCommandExecutor.execute(FirefoxDriver.java:362)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:572)
Caused by: java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:579)
    at org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:72)
    at org.apache.http.impl.conn.HttpClientConnectionOperator.connect(HttpClientConnectionOperator.java:117)

Xvfb 在构建开始之前如下启动,这是使用 Jenkins 的 xvfb 插件配置的:

Xvfb starting$ /usr/bin//Xvfb :10 -screen 0 1024x768x24 -fbdir /srv/jenkins/xvfb-2015-02-06_12-57-37-3245666068187787922.fbdir

我确保 Firefox 在 PATH 中。

谁能告诉我如何解决它?

【问题讨论】:

  • 您要启动哪个 Firefox 版本?谢谢。
  • 安装的FF版本是31.2.0

标签: firefox selenium jenkins selenium-webdriver xvfb


【解决方案1】:

首先通过本地测试修复您的 Firefox 版本和 selenium 版本匹配。如果您正在通过 Jenkins 运行作业并且在日志中您会收到错误 Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms。 Firefox 控制台输出:错误:无法打开显示::0

要解决请看以下步骤:

1) Firefox 仅在您运行 Xvfb 时才会启动, 例如: Xvfb :15 -screen 0 1024x768x16 所以首先检查这个,你可以通过将 ps -ef 添加到作业的前置步骤(shell 执行)中来将这个检查包含到作业中。 Xvfb :15 -screen 0 1024x768x16 & 您可能会遇到必须以无头模式启动测试的主机/节点。

2) 即使您已经明确定义了 DISPLAY 值但仍然有错误,那么最好的方法是在 Jenkins 作业本身中注入环境值。在 Build environment >> Inject env variables >> Properties content >> DISPLAY=:15 下(您可以根据自己的选择显示,但同样应该在 xvfb 中运行)

!!运行你的工作,应该已经修复了。

【讨论】:

    猜你喜欢
    • 2017-10-08
    • 1970-01-01
    • 2013-03-23
    • 1970-01-01
    • 2020-06-26
    • 1970-01-01
    • 1970-01-01
    • 2016-11-29
    • 2012-03-23
    相关资源
    最近更新 更多