robotfremaker selenium+python 使用
我的安装版本:python2.7 查看版本 cmd命令下输入python
用pip安装了selenum 3.11.0 查看版本 cmd命令下输入pip show selenium
火狐版本38.8.0
在使用Open Browser关键字打开浏览器时,报错信息如下:
20180416 15:06:49.348 : INFO : Cannot capture screenshot because no browser is open.
WebDriverException: Message: ‘geckodriver’ executable needs to be in PATH.
本着用最新版selenium 3
网上搜了各种解决办法,
1.单独下载火狐插件geckodriver,解压到火狐安装根路径,(下载地址:https://github.com/mozilla/geckodriver/releases 根据自己的电脑下载的最新版64位的v0.20.1 )
2.然后将该路径添加到path环境变量下。再次运行,报了一个新的错误:“selenium.common.exceptions.WebDriverException: Message: Unable to find a matching set of capabilities”
3.继续各种问度娘,原因是geckodriver版本与selenum版本不兼容,没有特别明确的版本对应说明,于是从0.20.1依次降低版本,尝试,最终使用deckdriverV0.15版本成功
4.此时运行又报了一个新的错误,:“selenium.common.exceptions.WebDriverException: Message: Unsupported Marionette protocol version 2, required 3;
5.继续往上查原因,说是firefox版本太低了,需要升级到最新版,我当前是38.8.0. 网上百度,升级到40.0 或41.0 可以成功
6.我升级到41.0,运行后,发现只打开了浏览器,而没有打开网址,继续报错。错误提示:Cannot capture screenshot because no browser is open.WebDriverException: Message: Not a Numbe
7.啊啊啊,我的报错之路,卡在这里了,尝试了依次升级firefox到47.0 依然报错Not a Number
耐心尝试,继续升级。火狐升级到59.0
大神解释:这种问题一般为版本问题:Selenium版本为3,或者火狐版本太高,一般Selenium2支持46以下的
8.selenium与火狐版本不兼容,尝试升级selenium的jar包,或兼容firefox低版本
传说在selenium下载页面 http://www.seleniumhq.org/download/ (需FQ) 各个版本的changelog中,会记录支持的firefox版本。 en。。。。。。这些个官网我永远打开都是无法访问此网站以告终。。
方法二,降低selenium版本。
卸载selenium版本:
cmd下输入:pip uninstall selenium
安装: pip install selenium x.xx.x(对应selenium版本) 一般Python 2.x 对应 selenium 2.x python 3.x 对应 selenium 3.xx
如果安装失败,报 错:Cannot fetch index base URL https://pypi.python.org/simple/ Could not find any downloads that satisfy the requirement selenium
可以下载安装 下载地址:https://pypi.python.org/pypi/selenium/2.42.1
进入下载文件存放地址 cmd cd 进入 python setup.py install pip show selenium查看安装版本
网友给出的selenium java对应 firefox 版本号,我就没有一一尝试,
2.25.0 -> 18
2.30.0 -> 19
2.31.0 -> 20
2.42.2 -> 29
2.44.0 -> 33 (不支持31)
2.53.0 -> 43,46(不支持47)
2.41.0 -> 26(绿色版本)
2.44 -> 32.0-35.0
2.53.0-2.53.6 -> 40.0.3
亲测
2.53.2 ->38.8-45.5.1
3.11.0 -> 59.0
elenium-java-2.42.2版本和firefox 29.0.1版本兼容,如果升级到firefox 30+,则浏览器启动失败。可能是selenium还未同步升级,后面估计可以正常支持。
若selenium的版本和firefox不兼容,需要升级selenium的jar包,或者是升级firefox。
因为Selenium3不支持向前支持火狐浏览器了,40以后版本的火狐,运行会出现问题。
附:
各firefox版本下载地址
http://ftp.mozilla.org/pub/firefox/releases/
各selenium版本下载地址:
https://pypi.python.org/pypi/selenium/
火狐插件geckodriver下载地址:
https://github.com/mozilla/geckodriver/releases
最终以selenium-python-2.53.2版本和firefox 38.8.0版本兼容
以及selenium-python-3.11.0 版本和firefox 59.0 版本兼容
成功。。。至此,我把历时一天的改错历程分享出来,供大家参考。邀请大神指出其中错误之处。