在Ubuntu 14.04.5 LTS上安装python模块selenium 3实录
简介
Selenium是python模块库中一组web自动化测试工具集,提供多种语言的API,例如java,python,ruby,.net等,支持Firefox,Chrome,IE,Safari 等多种浏览器,但是它驱动浏览器运行需要有专门的驱动程序。当驱动程序与浏览器的版本不匹配是就会报错。所以下载驱动一定要注意版本的匹配问题。
Selenium2.0和selenium3.0的到底选择哪个?
Selenium3.0 相较于selenium 2.0 API没有变化,主要增加了如下特性:
支持Mac OS,支持官方的Safaridriver
通过微软官方的webdriver server支持Edge浏览器
只支持IE 9.0版本以上
通过Mozilla官方的geckodriver来支持Firefox。
综上,selenium3.0支持的浏览器版本更多,所以建议选择selenium3.0
安装selenium
sudo pip install selenium
由截图可以看出,在Ubuntu 16.04.5 LTS上安装的是selenium 3版本。
下面查看我Ubuntu 16.04.5 LTS上安装的Chrome和Firefox的版本号,以便下面安装合适的驱动版本
如果想使用Chrome则需要安装驱动,可以在下面的网址下载
http://chromedriver.storage.googleapis.com/index.html
安装ChromeDriver
sudo apt-get install unzip
wget -N hhttp://chromedriver.storage.googleapis.com/71.0.3578.80/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
cp -f chromedriver /usr/bin/
chmod +x chromedriver
在运行过程中ChromeDriver会与Chrome浏览器不兼容,重新下载ChromeDriver地址,替换旧ChromeDriver即可。
安装Firefox对应的geckodriver
selenium3.x开始,webdriver/firefox/webdriver.py的init中,executable_path=”geckodriver”;
而2.x是executable_path=”wires”;
所以需要自己配置geckodriver;
下载地址:
https://github.com/mozilla/geckodriver/releases
下载后(根据系统版本选择):
wget https://github.com/mozilla/geckodriver/releases/download/v0.23.0/geckodriver-v0.23.0-linux64.tar.gz
tar zxvf geckodriver-v0.23.0-linux64.tar.gz
解压出来,放到系统目录下面
cp -f geckodriver /usr/bin/
chmod +x geckodriver
测验验证
下面的代码基于python 2.7并以作验证。
#!/usr/bin/env python
#encoding: utf-8
#description: 测试是否可以正常驱动Chrome
#note: 需要安装Selenium3,chromedriver等才能正常驱动同版本的Chrome浏览器
#date: 2019-01-03from selenium import webdriver
import timeif __name__ == '__main__':driver = webdriver.Chrome()driver.get('https://www.baidu.com')#在百度主页上搜索关键词Seleniumdriver.find_element_by_id('kw').send_keys('Selenium3')driver.find_element_by_id('su').click()#此处休眠一下再关闭Chrome窗口退出time.sleep(3)driver.quit()#开启火狐浏览器browser = webdriver.Firefox()browser.get('https://news.sohu.com') time.sleep(3)browser.quit()
在命令行运行
python selenium_demo.py
正常情况下,本脚本会先自动打开chrome浏览器,打开百度网页,输入关键词“kw”,并显示搜索结果,3秒后关闭chrome;然后再打开火狐浏览器,打开搜狐新闻主页,3秒后关闭。下面是看到的结果的截图:
遇到的问题
1.运行火狐时报如下错误
selenium.common.exceptions.WebDriverException: Message: ‘geckodriver’ executable needs to be in PATH.
解决方法:
见上面的方法,去http://docs.seleniumhq.org/download/下载geckodriver最新版,解压并复制到指定目录/usr/bin/下面。
参考文献
[1].https://www.jianshu.com/p/71bbe8acee01
[2].https://www.cnblogs.com/titicia/p/6036572.html
[3].https://blog.csdn.net/qq_41797451/article/details/80272748
[4].https://blog.csdn.net/qq471011042/article/details/79514908
在Ubuntu 14.04.5 LTS上安装python模块selenium 3实录相关推荐
- 在Ubuntu 16.04.5 LTS上升级python的pip版本实录
在ubuntu 16.04.5 LTS上使用Python安装模块时,比较顺手的方法是使用pip命令.这次,我在安装一个模块时,老是提示下面的问题,比较不爽.所以,我就照着提示做了一遍,记录下来,以作备 ...
- 在Ubuntu 16.04.5 LTS上安装pygame模块
简介 Pygame是跨平台Python模块,专为电子游戏设计,包含图像.声音.建立在SDL基础上,允许实时电子游戏研发而无需被低级语言(如机器语言和汇编语言)束缚. 安装 sudo pip insta ...
- 在Ubuntu 16.04.6 LTS上安装python3.7和pip3后出现Command '('lsb_release', '-a')' 出错问题的解决方法
在Ubuntu 16.04.6 LTS上安装python3.7和pip3后出现Command '('lsb_release', '-a')' returned non-zero exit status ...
- 在Ubuntu 16.04.5 LTS上利用python中的PIL模块压缩一百多兆的单张图片实操
在前面的博文中,我将300多张电影海报拼接为了一张103MB的巨幅图片,我想拿它做电脑桌面(1080P),但是这么多的图片,存储和加载是个麻烦事儿,需要将它压缩到几MB大小. 在Ubuntu 16.0 ...
- 在Ubuntu 14.04.5 64bit上安装git GUI客户端GitKraken
git的图像化管理工具很多,有两个是比较推荐用的,sourceTree以及GitKraken.个人比较喜欢GitKraken.下面是我在Ubuntu 14.04.5 64bit上的安装过程. 从官网下 ...
- 在Ubuntu 16.04.6 LTS上升级python 3.5到3.7.3实录
缘由 我想安装一个python模块you-get,发现只能使用pip3安装,但是我发现我的Ubuntu 16.04.6 LTS上有python3.5,但是没有pip3,也无法成功安装,真是要了我的老命 ...
- Ubuntu 14.04 64位上安装wps office软件
废话少说,只给出方法供各位参考!wps for Linux版本已经有两三年没有大的动作,当然其他平台,比如windows,Android,ios上的wps效果还是很赞的说. 下面是我成功安装的步骤: ...
- Ubuntu 14.04 64位上安装Valgrind 3.13.0 操作步骤
关于Valgrind的介绍和使用可以参考: http://blog.csdn.net/fengbingchun/article/details/50196189 在Ubuntu 14.04上可以通过以 ...
- 在Ubuntu 14.04(Trusty Tahr)上安装Plesk
Plesk是一个专有的web主机控制面板,允许用户管理他们的个人和/或客户的网站.数据库.电子邮件和域名.它允许简单的点和点击通过浏览器管理/维护. 基本条件: 1.一个新安装的Ubuntu 14.0 ...
最新文章
- 得到按钮所在DIV的ID
- 07.full text query_string查询
- CSS3:FlexBox的详解
- python3(八)sys模块
- elementui el-from 怎样显示图片_vue2.0使用weui.js的uploader组件上传图片(兼容移动端)...
- 21副酷炫的动图让你了解各种数学概念
- Linux入侵痕迹检测方案【华为云技术分享】
- Python中 '==' 与'is' 以及它们背后的故事
- 单片机C语言任何位置跳转到任何指定地址 -转
- 传爱立信两大股东欲弹劾CEO卫翰思 股价应声反弹
- JPack插件创建了开源项目,欢迎wow player 加入
- css中字体的大小怎么设置,css样式中怎么设置字体大小
- 【爬虫】根据水文资料(水位/流量)爬取地理空间数据云遥感影像信息
- 中建政研马海顺-PPP项目EPC工程总承包全过程管控与风险防范
- c语言求正方体的表面积和体积,2.事先编写一个程序,计算正方体、球体和圆柱体的表面积和体积。(提示:声明一个抽象基类 container,派...
- VS2010 MVC4下载地址
- 苍溪城郊中学2021高考成绩查询,苍溪县城郊中学2019高考成绩喜报、一本二本上线人数情况...
- SUN J2EE企业应用技术学习计划
- matlab空间杜宾模型命令,matlab 空间杜宾模型
- Leetcode LCP2.分式化简
热门文章
- windows下如何在一台机器上安装两个MYSQL数据库
- Go 学习笔记(16)— 函数(02)[函数签名、有名函数、匿名函数、调用匿名函数、匿名函数赋值给变量、匿名函数做回调函数]
- 使用GeoServer导出地图数据GeoJSON并应用
- 用java实现给图片增加图片水印或者文字水印(也支持视频图像帧添加水印)
- c语言程序开平方,关于开平方的c程序
- java unit包_Java接入UNIT文本对话处理源码详解
- e.V4p.C0/index.php,php-fpm进程在Kubernetes中接收SIGKILL信号
- python 聚类_使用python+sklearn实现聚类性能评估中随机分配对聚类度量值的影响
- c++监听键盘_你会为颜值买单吗?杜伽fusion复古键盘晒单体验_键盘
- java单循环 比较得分_java – 为什么两个单独的循环比一个快?