我的 Firefox 现在是 v 48。这似乎不适用于旧版本的 Selenium。出于这个原因,我不得不将(Gradle)Selenium 依赖项更改为
testCompile 'org.seleniumhq.selenium:selenium-java:3.+'
然后从以下位置获取geckodriver.exe
并更改我的 Selenium 测试:
WebDriver driver = new FirefoxDriver();
至
System.setProperty("webdriver.gecko.driver","D:\\apps\\geckodriver\\geckodriver-v0.10.0-win64\\geckodriver.exe");
DesiredCapabilities capabilities=DesiredCapabilities.firefox();
capabilities.setCapability("marionette", true);
WebDriver driver = new FirefoxDriver(capabilities);
(顺便说一句,我不知道这些 Gecko、Marionette 和 Capabilties 的内容是关于什么的……但上述方法对 Selenium 有效)
但是在清理了依赖缓存之后,改为使用最新版本的 Selenide 3.9.1,后者然后将 Selenium 2.53 放入缓存中,代码如下:
open("https://en.wikipedia.org/wiki/Main_Page");
...导致此错误:
原因:org.openqa.selenium.firefox.NotConnectedException:45000 毫秒后无法连接到端口 7055 上的主机 127.0.0.1。Firefox 控制台输出:-app-global","version":"1.0","type":"extension","internalName":null, ...
...也就是说,似乎是因为 Selenium 2.53 无法处理我的 FF 版本。
我也尝试使用 Selenium 3.0.0。与硒化物 3.9.1。这也不起作用,这并不奇怪,因为大概在 Selenide 代码的某个地方它使用了以下行:
WebDriver driver = new FirefoxDriver();
有什么建议么?我不想使用旧版本的 FF ......那种技术总是不能令人满意......我想我可能会尝试摆弄相关的 Selenide java 文件并重新编译......但是比我聪明的人在做什么?