selenium,geckodriver与Firefox版本不匹配

最近项目经常出现js报错问题,于是想做一个小项目,把所有页面都截图下来,每个版本运行一次,结果发现好久没用selenium了,早上着实被自己狠狠地坑了一把。

 

项目直接用的maven做jar包管理,直接下载的最新的webdriver版本:


 
org.seleniumhq.selenium
 
selenium-java
 
3.8.1

 

然后下载了最新的geckodriver 19.0.1,然后先做了个小测试:

       

System.setProperty("webdriver.gecko.driver","C:/ProgramFiles (x86)/Mozilla Firefox/geckodriver.exe");      

WebDriver webdriver = new FirefoxDriver();

webdriver.get("http://www.baidu.com/");

System.out.print(webdriver.getWindowHandles());

System.out.print(webdriver.getPageSource());

webdriver.close();

webdriver.quit();

 运行一下,发现报错了:

 selenium,geckodriver与Firefox版本不匹配_第1张图片


刚开始以为是selenium版本的问题,于是看一下当前selenium支持的版本:

到自己本地的maven仓库下:

F:\Java\JavaTools\Maven\mvnFiles\org\seleniumhq\selenium\selenium-firefox-driver\3.8.1

用解压软件解压缩selenium-firefox-driver-3.8.1.jar

然后找到selenium-firefox-driver-3.8.1\org\openqa\selenium\firefox 下的webdriver.xpi,继续解压,找到webdriver下的install.rdf, 用记事本或者notpad++打开,可以看到支持的Firefox的版本:

  

       

           

               {ec8030f7-c20a-464f-9b0e-13a3a9e97384}

               3.0

               52.0

           

       

然后看看自己的Firefox,发现是48版本的,应该是没问题的,然后再仔细阅读一下报错,发现是因为geckodriver版本太高了,去 https://github.com/mozilla/geckodriver/releases上仔细看了一下说明,19.0以后需要FF55及以上了


好吧,升级一下Firefox,在这,给大家提供一下Firefox各种版本的下载:

https://ftp.mozilla.org/pub/firefox/releases/

 

升级之后,发现webdriver操作不报错了,但是悲剧的情况发生了,我们的项目不支持FF51之后的,于是经历各种尝试,终于把版本定了下来


Selenium 3.8.1

geckodriver.exe V.15.0

firefox 48.0

 

geckdirver.exe V16.0也可以进行操作,但是发现16.0无法正确关闭webdriver,当然这个在16.0.1上解决了,不过先试用15.0来做试试吧。

你可能感兴趣的:(自动化测试)