0

我的 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 文件并重新编译......但是比我聪明的人在做什么?

4

1 回答 1

0

我刚收到 Selenide 的作者发来的一封电子邮件,他告诉我这是一个已知问题,最好的办法是使用旧版本的 FF,或者最好使用 Chrome。我采用了后一种解决方案并通过了测试。我对此并不完全满意,因为我不喜欢 Chrome 有几个原因。希望 Selenide 的未来版本能够满足更新的 FF 版本。

于 2016-09-04T11:43:04.270 回答