我的Firefox现在是第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:Unable 在45000 ms后连接到端口7055上的主机127.0.0.1。火狐 控制台输出: -app全局""版本":" 1.0""类型":"延伸"" INTERNALNAME& #34;:null,...
......看来,这是因为Selenium 2.53无法应对我的FF版本。
我也尝试过使用Selenium 3.0.0。与Selenide 3.9.1。这也没有用,这一点都不奇怪,因为大概在Selenide代码的某处,它使用了以下几行:
WebDriver driver = new FirefoxDriver();
有什么建议吗?我不想使用旧版本的FF ...那种技术总是令人不满意...我想我可能会尝试摆弄相关的Selenide java文件并重新编译...但是人们比什么更聪明?我呢?
答案 0 :(得分:0)
我刚收到Selenide作者的电子邮件,他告诉我这是一个已知问题,最好的办法是使用旧版本的FF,或者最好使用Chrome。 我已经使用了后一种解决方案并且通过了测试。 我并非完全对此感到满意,因为我有几个理由不喜欢Chrome。希望Selenide的未来版本能够迎合更新的FF版本。