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

blo*_*mon 6 java selenium selenium-webdriver

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

WebDriver driver = new FirefoxDriver();
driver.get(URL);
Run Code Online (Sandbox Code Playgroud)

现在我将我的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)在org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:92)在auth.Authenticator.authenticate(Authenticator.java:15)在reader.ReaderThread.run( ReaderThread.java:67)org.openqa.selenium.WebDriverException:未能连接到端口7055的二进制FirefoxBinary(在/ usr /斌/火狐); 进程输出如下:错误:无法打开显示:: 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的org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:118). FirefoxDriver.startClient(FirefoxDriver.java:244)位于org.openqa的org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:110)org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:190) .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
Run Code Online (Sandbox Code Playgroud)

小智 3

通过这样做解决:

export DISPLAY=:0.0 xvfb-run --auto-servernum --server-num=0 nohup java - jar X.jar
Run Code Online (Sandbox Code Playgroud)