当前位置: 首页 > 知识库问答 >
问题:

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

皇甫德庸
2023-03-14

我正在使用Selenium来测试我的网站,它使用Firefox打开一个URL,登录并在页面上做一些事情,然后注销并关闭Firefox。这一切在Windows7上都很好用。代码以:

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

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

NotConnectedException:45000 ms后无法连接到端口7055上的主机127.0.0.1。Firefox控制台输出:错误:无法打开Display::0错误:无法打开Display::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(remotewdriver.java:110)在org.openqa.selenium.firefox.firefoxdriver(进程输出如下:错误:无法打开Display::0错误:无法打开Display::0

生成信息:版本:“unknown”,修订:“unknown”,时间:“unknown”系统信息: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(位于org.openqa.selenium.firefox.java.118)

我有Xvfb运行ok在框中,我已经设置变量显示为0。我四处搜索,没有一个解决方案(比如设置env变量)起作用。

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

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

编辑:更新到Firefox14,仍然可以看到相同的问题。我甚至把超时限制提高到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

共有1个答案

谢俊力
2023-03-14

通过这样做解决:

export DISPLAY=:0.0 xvfb-run --auto-servernum --server-num=0 nohup java - jar X.jar
 类似资料:
  • 我已经在selenium项目所需的pom.xml中添加了所有依赖项。但是当我尝试使用以下命令启动Firefox驱动程序时仍然会出错:WebDriver驱动程序=new FirefoxDriver(); 我的pom.xml: http://maven.apache.org/xsd/maven-4.0.0.xsd"

  • PHP版本:7.2.19-0ubuntu0.18.04.1 phpMyAdmin 4.6.6 在安装Phpmyadmin时,打开它时出现两个错误。一个在导入下,一个在导出下!这是因为mysql服务器出错还是因为phpmyadmin中的错误?我该如何处理它呢? 我在Debian9上安装了它,没有问题! 出口项下: ./libraries/plugin_interface.lib.php#551 co

  • 问题内容: 我是Rust的新手。我正在使用板条箱,但该程序只是退出而没有引起恐慌。我要做的唯一不同就是数据库不同。 问题答案: 引发了错误,但是您忽略了它。 长an 非致命错误通常通过返回来传播,因此调用方可以处理该错误。紧急情况通常用于发生不可恢复的错误,并将中止当前线程。在这种情况下,redis库使用该类型,它是的别名。 如果要处理错误,则应通过匹配结果类型来进行。尝试将您的主要功能更改为以下

  • 问题内容: 我有一个带有两个输入文本框的表单,并且我包括了两个的jQuery验证规则: 我用过了: 突出显示错误控制。现在的问题是,在以下情况下,两个输入文本框都保持突出显示(背景色:红色): 在文本框1中输入少于5个字符的文本 将文本框2留空 点击提交 两个输入文本框的背景都将更改为红色(正确) 现在,在文本框1中输入一个包含6个字符的文本(有效输入) 将文本框2留空 点击提交 两个文本框的背景

  • 问题内容: 我一直在为FF写我的脚本,但希望他们所做的工作很少,它们也可以在其他浏览器上运行,但是IE驱动程序似乎存在按钮问题? 我在按钮上有一个简单的webelement.click(),不会引发错误,但不单击按钮。在FF它的罚款。我可以获取文本,获取价值,所以我知道find语句是可以的,只是不会单击它。 想法或帮助会很棒 只是做 HTML-控件上有3个按钮,我现在只对登录感兴趣 问题答案: 遇

  • 我遇到toast错误它将进入我在清单中正确地授予了摄像头权限 这是我的kt代码。 帮忙解决这个问题?