猿问

Selenium 2.53不使用Firefox 47

Selenium 2.53不使用Firefox 47

我在WebDriver中使用Firefox时出错了。

org.openqa.selenium.firefox.NotConnectedException: Unable to connect
to host 127.0.0.1 on port 7055 after 45000 ms.
  • Firefox版本:47.0
  • 硒:2.53.0
  • Windows 10 64位

有没有人得到类似的问题,或者知道解决这个问题的方法是什么?它在Chrome上运行得很好,但是对于Firefox,没有一个URL会被加载。


一只斗牛犬
浏览 240回答 3
3回答

SMILET

不幸的是,Selenium WebDriver 2.53.0与Firefox 47.0不兼容。WebDriver组件,它处理Firefox浏览器(FirefoxDriver)将停止。从3.0版开始,Selenium WebDriver将需要geckodriver二进制文件,用于管理Firefox浏览器。更多信息这里和这里.因此,为了在Selenium WebDriver 2.53.0中使用Firefox 47.0作为浏览器,您需要下载Firefox驱动程序(它是一个名为geckodriver从0.8.0版到以前的版本wires)并将其绝对路径导出到变量webdriver.gecko.driver作为Java代码中的系统属性:System.setProperty("webdriver.gecko.driver",&nbsp;"/path/to/geckodriver");幸运的是,图书馆WebDriverManager可以为您完成此工作,即为您的计算机(Linux、Mac或Windows)下载合适的Marionette二进制文件,并导出适当系统属性的值。若要使用此库,需要将此依赖项包含到项目中:<dependency> &nbsp;&nbsp;&nbsp;&nbsp;<groupId>io.github.bonigarcia</groupId> &nbsp;&nbsp;&nbsp;&nbsp;<artifactId>webdrivermanager</artifactId> &nbsp;&nbsp;&nbsp;&nbsp;<version>3.6.1</version></dependency>..然后在使用WebDriver之前在程序中执行这一行:WebDriverManager.firefoxdriver().setup();使用WebDriver的JUnit 4测试用例的完整运行示例如下:public&nbsp;class&nbsp;FirefoxTest&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;WebDriver&nbsp;driver; &nbsp;&nbsp;&nbsp;&nbsp;@BeforeClass &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;setupClass()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebDriverManager.firefoxdriver().setup(); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;@Before &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setupTest()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;driver&nbsp;=&nbsp;new&nbsp;FirefoxDriver(); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;@After &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;teardown()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(driver&nbsp;!=&nbsp;null)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;driver.quit(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;@Test &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;test()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Your&nbsp;test&nbsp;code&nbsp;here &nbsp;&nbsp;&nbsp;&nbsp;}}考虑到Marionette将是未来唯一的选择(WebDriver 3+和Firefox 48+),但目前(编写时版本为0.9.0)并不十分稳定。看一下木偶路线图更多细节。更新硒WebDriver2.53.1已经于2016年6月30日发布。FirefoxDriver正在重新使用Firefox47.0.1作为浏览器。

长风秋雁

我也有同样的问题,发现你需要更换驱动程序,因为放弃支持..而不是使用Firefox驱动程序,您需要使用木偶为了运行你的测试。我目前正在通过设置我自己,并可以张贴一些建议的步骤,如果你想当我有一个工作的例子。下面是我在Mac上运行Java环境所遵循的步骤(在我的Linux安装(Fedora、CentOS和Ubuntu)中也为我工作):从发布页面解压档案为Marionette创建一个目录(即,mkdir -p /opt/marionette)将解压缩的可执行文件移动到您创建的目录中。更新您的$PATH若要包含可执行文件(同时,请编辑.bash_profile如果你愿意的话):邦邦:确保你chmod +x /opt/marionette/wires-x.x.x所以它是可执行的在启动过程中,请确保使用以下代码(这是我在Mac上使用的代码)速记仍然不像预期的那样工作,但至少现在启动了浏览器。需要找出原因-现在看来我需要重写我的测试才能让它正常工作。Java片段WebDriver&nbsp;browser&nbsp;=&nbsp;new&nbsp;MarionetteDriver();System.setProperty("webdriver.gecko.driver",&nbsp;"/opt/marionette/wires-0.7.1-OSX");
随时随地看视频慕课网APP

相关分类

Java
我要回答