由于最近发现咨询火狐浏览器打不开的问题比较多,现罗列几点解决办法。
1,由于selenium更新3.0的原因导致不在默认支持火狐浏览器,且支持的火狐浏览器大概在45以上的版本,所以很多都由于这个原因导致selenium在运行时打不开浏览器。
解决办法有两种:
1). 可继续使用selenium2.x的版本,但是随着selenium及火狐的不断更新,时间久了始终会有点坑的。但是目前能解决,selenium2.53.6默认支持火狐47及47以下的浏览器。
python更新selenium的版本可用:
pip install -U selenium==2.53.6
2). 第二种办法当然就是使用限制的selenium3.0的版本,由于不在默认支持火狐浏览器,且 Message: 'geckodriver' executable needs to be in PATH 这个错误大家应该
都不陌生了,问题如看到的一样,需要名为geckodriver.exe的一个火狐浏览器driver在path中,当然解决办法就是,下载一个geckodriver.exe并将存放的路径添加在path中,简单点就
直接放python的根目录下即可,下载地址 https://github.com/mozilla/geckodriver/releases,另外需要注意下,geckodriver分32及64位的版本,版本需与浏览器对应。当你看到如下报错时,Expected browser binary location, but unable to find binary in default location, no 'moz:firefoxOptions.binary' capability provided, and no binary flag set on the command line, 说明你的火狐浏览器和driver版本没有对应上,需确保火狐及driver都是32位或64位的。
顺便提一下现在新的版本,selenium=3.4.3,selenium2Library=1.8.0,火狐浏览器当前最新版本是55,然后geckodriver=0.18. 安装使用的时候 请注意下geckodriver支持的火狐浏览器。
另外有些人可能装了类似geckodriver=0.15的版本,只时候你可能需要降一下selenium版本方可使用,pip install -U selennium=3.0.2
3). 顺便提一下,很多人现在使用的robotframework版本及ride版本都比较落后,先说明下robotframework版本最新为3.0,ride的版本为1.5.2.1.所以引起打不开浏览器如果
上面的已经做了,仍然打不开,可考虑更新下这两个的版本。
pip install -U robotframework
pip install -U robotframework-ride
总结下,如果使用selenium2.x的版本,需火狐浏览器为47及以下的版本,如果使用selenium3.0,需确保下载有geckodriver且路径在path中。目前selenium3.0支持火狐45及以上的版本。目前最新的火狐浏览器为49。
2,顺便提一下谷歌及ie,由于selenium2.x默认不支持,所以更新3.0之后仍需要chromedriver.exe及iedriverserver.exe。可自行在http://chromedriver.storage.googleapis.com/index.html下载,自行百度chromedriver支持的版本吧
3,当遇到浏览器打开了,但是无法访问页面的时候,往往是由于使用了高版本的浏览器和低版本的selenium导致的,解决办法同上。