vee*_*a k 106 java firefox selenium selenium-firefoxdriver selenium-webdriver
我在使用Firefox和WebDriver时遇到错误.
org.openqa.selenium.firefox.NotConnectedException: Unable to connect
to host 127.0.0.1 on port 7055 after 45000 ms.
Run Code Online (Sandbox Code Playgroud)
有人得到类似的问题或任何想法是什么解决方案?它适用于Chrome,但使用Firefox时,没有任何网址被加载.
Bon*_*cía 92
不幸的是,Selenium WebDriver 2.53.0与Firefox 47.0不兼容.处理Firefox浏览器(FirefoxDriver
)的WebDriver组件将停止使用.从版本3.0开始,Selenium WebDriver将需要geckodriver
二进制文件来管理Firefox浏览器.更多信息在这里和这里.
因此,为了将Firefox 47.0用作Selenium WebDriver 2.53.0的浏览器,您需要下载Firefox驱动程序(这是一个名为geckodriver
0.8.0及以前版本的二进制文件wires
)并将其绝对路径导出为变量webdriver.gecko.driver
as Java代码中的系统属性:
System.setProperty("webdriver.gecko.driver", "/path/to/geckodriver");
Run Code Online (Sandbox Code Playgroud)
幸运的是,库WebDriverManager可以为您完成这项工作,即为您的机器(Linux,Mac或Windows)下载适当的Marionette二进制文件并导出适当系统属性的值.要使用此库,您需要将此依赖项包含在项目中:
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>3.7.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
...然后在使用WebDriver之前在程序中执行此行:
WebDriverManager.firefoxdriver().setup();
Run Code Online (Sandbox Code Playgroud)
使用WebDriver的JUnit 4测试用例的完整运行示例如下:
public class FirefoxTest {
protected WebDriver driver;
@BeforeClass
public static void setupClass() {
WebDriverManager.firefoxdriver().setup();
}
@Before
public void setupTest() {
driver = new FirefoxDriver();
}
@After
public void teardown() {
if (driver != null) {
driver.quit();
}
}
@Test
public void test() {
// Your test code here
}
}
Run Code Online (Sandbox Code Playgroud)
考虑到Marionette将是未来的唯一选择(适用于WebDriver 3+和Firefox 48+),但目前(写作时版本0.9.0)不是很稳定.请查看Marionette路线图以获取更多详细信息.
UPDATE
Selenium WebDriver 2.53.1已于2016年6月30日发布.FirefoxDriver
再次使用Firefox 47.0.1作为浏览器.
Mah*_*man 18
尝试使用firefox 46.0.1.它最适合Selenium 2.53
https://ftp.mozilla.org/pub/firefox/releases/46.0.1/win64/en-US/
Run Code Online (Sandbox Code Playgroud)
el *_*00b 10
我有同样的问题,发现你需要切换驱动程序,因为 支持被删除了.您需要使用Marionette驱动程序来运行测试,而不是使用Firefox驱动程序.我目前正在完成设置,如果你有一个有效的例子,可以发布一些建议的步骤.
以下是我在Mac上使用Java环境时所遵循的步骤(在我的Linux安装(Fedora,CentOS和Ubuntu)中为我工作):
mkdir -p /opt/marionette
)$PATH
的包含可执行文件(.bash_profile
如果你想,也可以编辑你的)chmod +x /opt/marionette/wires-x.x.x
它是可执行的快速注意
仍然没有按预期工作,但至少现在启动浏览器.需要找出原因 - 现在看来我需要重写我的测试才能使它工作.
Java片段
WebDriver browser = new MarionetteDriver();
System.setProperty("webdriver.gecko.driver", "/opt/marionette/wires-0.7.1-OSX");
Run Code Online (Sandbox Code Playgroud)
如果您使用Homebrew使用OSX,则可以通过brew cask安装旧的Firefox版本:
brew tap goldcaddy77/firefox
brew cask install firefox-46 # or whatever version you want
Run Code Online (Sandbox Code Playgroud)
安装后,您只需将Applications目录中的FF可执行文件重命名为"Firefox"即可.
更多信息可以在git repo homebrew-firefox找到.用于创建原始桶的smclernon的道具.
归档时间: |
|
查看次数: |
100335 次 |
最近记录: |