2019独角兽企业重金招聘Python工程师标准>>>
目的是打算用python控制浏览器。把整个过程记录下来,希望能给大家节省时间。
最折腾人的,就是各种软件的版本了吧。
先上个软件版本:
树莓派3B
iceweasel 52+selenium 3.3 +geckodriver 15.0
python2.7
firefox在树莓派中,名称为iceweasel。iceweasel,selenium,geckodriver均有版本对应关系,其中一个搞错,很可能就报错。
过程
安装前
得先apt-get update下
sudo apt-get update
安装iceweasel(firefox)
sudo apt-get install iceweasel
查看iceweasel的版本,确保是52的
iceweasel -version
下载驱动geckodriver
对于52.7.3的iceweasel,江湖传说得配0.15.0版本的geckodriver:下载地址
这里要注意选择arm的编译版本
下载下来后,对其进行解压缩,得到geckodriver文件,将此文件的权限,设置为777
sudo chmod -R 777 geckodriver
将geckodeiver文件,移动到环境变量/usr/local/bin目录下
安装selenium
Selenium的版本要3.3以上才可以。我们就用3.3吧,防止出什么幺蛾子
sudo pip install selenium==3.3
准备代码
这样安装就完成了,下面我们来准备python测试的代码:
from selenium import webdriver
browser = webdriver.FireFox()
browser.get('http://www.baidu.com')
browser.get('http://www.qq.com')
功能是先访问百度,然后再访问qq的网站。python运行后,能顺利打开firefox,并且完成这个过程,说明环境安装成功。
后记
对两点进行下记录
1.很多网上的博文,对geckodriver文件放在哪里没有做说明,我自己尝试了,假如随便放在某个目录下。例如~目录。那么在python代码的browser = webdriver.FireFox()中,就要传入geckodriver的路径作为参数。但是我发现,在webdriver.FireFox()中指定了geckodriver完整路径,会报一个很奇怪的错误。说指定的路径不是目录...我查了很多教程,都是说此处指定的是文件的路径名,而不是文件夹的名字。所以有点匪夷所思。还望知道的朋友指教。
2.关于chromium浏览器
本来我是打算使用selennium来控制chromium的,毕竟树莓派3B自带的chreomium。性能感觉也要好点。但是尝试到最后,报一个状态码为127的错误,网上搜了下,可能还是驱动版本的问题。网上有一篇博客讲的比较详细:链接 文章中,特别注意自己树莓派上的chromium的version。按文章的提示,我的树莓派上的版本,就没找到对应的驱动。chromium和chrome用的同一套驱动,其他文章还提到chrome和driver之间版本对应关系:链接。但是,随着版本的维护,比较新的版本,已经不支持arm的Linux了。网上成功经验的资料相对也比较少,大多也都是遇到了各种问题。
3.若考虑windows下安装,参考此文。临时查到的,放到这里,备忘。链接
特别感谢此文,少走了莫大的弯路:https://blog.csdn.net/DDQ_DQ/article/details/77367739