6

我正在使用 Selenium 测试我的网站,它使用 Firefox 打开一个 URL,登录并在页面上执行一些操作,然后注销并关闭 Firefox。这一切都在 Windows 7 上运行良好。代码以:

WebDriver driver = new FirefoxDriver();
driver.get(URL);

现在我将我的 jar 部署在运行 Debian lenny 的 linux 盒子中,它上面有 iceweasel。一个 cron 作业启动程序,该程序在尝试打开 Firefox 时抛出以下错误:

org.openqa.selenium.firefox.NotConnectedException:45000 毫秒后无法连接到端口 7055 上的主机 127.0.0.1。Firefox 控制台输出:错误:无法打开显示::0 错误:无法打开显示::0

在 org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:106) 在 org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:244) 在 org.openqa.selenium.remote.RemoteWebDriver .(RemoteWebDriver.java:110) 在 org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:190) 在 org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:183) 在 org.openqa.selenium .firefox.FirefoxDriver.(FirefoxDriver.java:179) at org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:92) at auth.Authenticator.authenticate(Authenticator.java:15) at reader.ReaderThread.run( ReaderThread.java:67) org.openqa.selenium.WebDriverException: 无法连接到端口 7055 上的二进制 FirefoxBinary(/usr/bin/firefox);过程输出如下:错误:

构建信息:版本:'未知',修订:'未知',时间:'未知'系统信息:os.name:'Linux',os.arch:'i386',os.version:'2.6.26-2- 686', java.version: '1.6.0_26' 驱动程序信息: driver.version: FirefoxDriver at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:118) at org.openqa.selenium.firefox。 FirefoxDriver.startClient(FirefoxDriver.java:244) 在 org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:110) 在 org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:190) 在 org.openqa .selenium.firefox.FirefoxDriver.(FirefoxDriver.java:183) 在 org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:179) 在 org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:92) 在 auth.Authenticator.authenticate(Authenticator.java:15) 在 reader.ReaderThread.run(ReaderThread.java:67)

我的 Xvfb 在框中运行正常,并且我已将变量 DISPLAY 设置为 0。我四处搜索,但没有一个解决方案(如设置 env 变量)起作用。

XVfb 不应该作为浏览器启动并执行必要操作的非图形环境工作吗?是什么阻止它启动?

我正在使用最新的 Selenium 版本 2.31 和 Firefox 3.0.6 Iceweasel。

编辑:更新到 Firefox 14 并且仍然看到同样的问题。我什至将超时限制提高到 60 秒。

driver.manage().timeouts().pageLoadTimeout(60, TimeUnit.SECONDS);

已解决:通过使用 xvfb 包装器运行它,xvfb-run 如下所示:

export DISPLAY=:0.0
xvfb-run --auto-servernum --server-num=0 nohup java - jar X.jar
4

4 回答 4

3

通过这样做解决:

export DISPLAY=:0.0 xvfb-run --auto-servernum --server-num=0 nohup java - jar X.jar
于 2013-04-11T08:32:35.570 回答
0

我已经看到了类似的问题,这仅适用于 firefox,对于其他浏览器,一切正常,我在 Chrome 上尝试过。这是解决方案1.检查FF的版本,如果是最新的,则选择较低版本的FF。建议更稳定。2. 你应该总是尝试从 selenium 网站获取最新的 selenium 二进制文件。有关更多详细信息,请尝试此解决方案:http: //khyatisehgal.wordpress.com/2014/09/09/at-org-openqa-selenium-firefox-internal-newprofileextensionconnection-startnewprofileextensionconnection-java106/

于 2014-09-16T04:01:17.080 回答
-1

尝试更新您的网络驱动程序或降级您的 Firefox。此问题与 selenium 服务器无法连接到您的 Firefox 有关。

于 2013-04-08T12:12:50.193 回答
-2

升级到最新的 Selenium jar 后,此问题得到解决。

于 2014-09-26T12:59:36.817 回答