因有工作中有自动化的需求,开始尝试用python 和selenium 写个基于web的脚步。

初步搭建环境,pycharm 安装selenium,默认安装了3.14的版本。本机Firefox的版本为最新(68),且安装了geckodriver v0.24.0(Firefox的驱动包,使用selenium需要的)。

环境ok后,就开始在pycharm中编写基本的脚本,编写了几倍呢的脚步后,运行ok。开始尝试复杂一点的发现driver.find_element_by_id()/driver.find_element_by_name()/driver.find_element_by_class(),都可以找到基本的element,当网页中有个别利用这三个都找不到的时候,开始研究还有什么方法。上网查到,driver.find_element_by_xpath()是最靠谱的方式。于是便开始了xpath之旅。

xpath在Firefox查看需要安装firebug和firepath组件,且这两个组件是Firefox 自带,然后就开始在Firefox中去安装,无奈,发现无法安装。一查原来Firefox49版本后就再不支持安装这两个组件了。然后开始下载旧版本的Firefox且不能让他自动更新。安装Firefox48,且对应的组件安装好,发现firepath对于xpath太友好了,分分钟就找到自己想要的了。开始在pycharm中写代码,吭哧吭哧写好了,一运行,第2行selenium调用Firefox()失败。又开始查找原因,之前Firefox高版本明明已经运行过了,说明环境没有问题啊,针对报错原因查找,原来是Firefox的低版本与 geckodriver-v0.24.0 (高版本)不兼容,呜啦啦,这是要闹那样, 又开始查找与之匹配的版本,网上也没有说具体的那个版本和那个版本匹配,只是有个范围,巴拉巴拉我下载了6个不同的版本,一个一个的开始试,最终geckodriver-v0.15.0 ,运行ok。

备注:浏览器的驱动只需要放在python.exe同目录下或者scripts目录下,这两个目录均已加入环境变量;Firebug和firepath组件需要单独下载,下载后直接拖入打开的Firefox浏览器中,自行安装。

geckodriver 各个版本下载地址:https://github.com/mozilla/geckodriver/releases 

Firefox 和chrome 与selenium以及浏览器对应driver的对应关系和相关下载地址:

自我感悟:工作中不怕有问题,出现问题冷静的分析,并找出解决办法。