Selenium Webdriver - Debian Lenny上的FirefoxDriver问题(错误无显示)

时间:2013-04-08 11:20:08

标签: java selenium selenium-webdriver

我正在使用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 ms后在端口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)     在   org.openqa.selenium.firefox.FirefoxDriver。(FirefoxDriver.java:92)     在auth.Authenticator.authenticate(Authenticator.java:15)at   reader.ReaderThread.run(ReaderThread.java:67)   org.openqa.selenium.WebDriverException:无法连接到二进制文件   端口7055上的FirefoxBinary(/ usr / bin / firefox);流程输出如下:   错误:无法打开显示:: 0错误:无法打开显示:: 0

     

构建信息:版本:'未知',修订版:'未知',时间:'未知'   系统信息:os.name:'Linux',os.arch:'i386',os.version:   '2.6.26-2-686',java.version:'1.6.0_26'驱动程序信息:driver.version:   FirefoxDriver在   org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:118)     在   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)at   reader.ReaderThread.run(ReaderThread.java:67)

我的Xvfb在框中运行正常,我已将变量DISPLAY设置为0.我已经搜索过,并且没有任何解决方案(比如设置env变量)都有效。

Isnt 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 个答案:

答案 0 :(得分:3)

解决这个问题:

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

答案 1 :(得分:0)

尝试更新您的webdriver或降级您的Firefox。 这个问题与selenium服务器无法连接到你的Firefox有关。

答案 2 :(得分:0)

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

答案 3 :(得分:-2)

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