简介

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实录相关推荐

  1. 在Ubuntu 16.04.5 LTS上升级python的pip版本实录

    在ubuntu 16.04.5 LTS上使用Python安装模块时,比较顺手的方法是使用pip命令.这次,我在安装一个模块时,老是提示下面的问题,比较不爽.所以,我就照着提示做了一遍,记录下来,以作备 ...

  2. 在Ubuntu 16.04.5 LTS上安装pygame模块

    简介 Pygame是跨平台Python模块,专为电子游戏设计,包含图像.声音.建立在SDL基础上,允许实时电子游戏研发而无需被低级语言(如机器语言和汇编语言)束缚. 安装 sudo pip insta ...

  3. 在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 ...

  4. 在Ubuntu 16.04.5 LTS上利用python中的PIL模块压缩一百多兆的单张图片实操

    在前面的博文中,我将300多张电影海报拼接为了一张103MB的巨幅图片,我想拿它做电脑桌面(1080P),但是这么多的图片,存储和加载是个麻烦事儿,需要将它压缩到几MB大小. 在Ubuntu 16.0 ...

  5. 在Ubuntu 14.04.5 64bit上安装git GUI客户端GitKraken

    git的图像化管理工具很多,有两个是比较推荐用的,sourceTree以及GitKraken.个人比较喜欢GitKraken.下面是我在Ubuntu 14.04.5 64bit上的安装过程. 从官网下 ...

  6. 在Ubuntu 16.04.6 LTS上升级python 3.5到3.7.3实录

    缘由 我想安装一个python模块you-get,发现只能使用pip3安装,但是我发现我的Ubuntu 16.04.6 LTS上有python3.5,但是没有pip3,也无法成功安装,真是要了我的老命 ...

  7. Ubuntu 14.04 64位上安装wps office软件

    废话少说,只给出方法供各位参考!wps for Linux版本已经有两三年没有大的动作,当然其他平台,比如windows,Android,ios上的wps效果还是很赞的说. 下面是我成功安装的步骤: ...

  8. Ubuntu 14.04 64位上安装Valgrind 3.13.0 操作步骤

    关于Valgrind的介绍和使用可以参考: http://blog.csdn.net/fengbingchun/article/details/50196189 在Ubuntu 14.04上可以通过以 ...

  9. 在Ubuntu 14.04(Trusty Tahr)上安装Plesk

    Plesk是一个专有的web主机控制面板,允许用户管理他们的个人和/或客户的网站.数据库.电子邮件和域名.它允许简单的点和点击通过浏览器管理/维护. 基本条件: 1.一个新安装的Ubuntu 14.0 ...

最新文章

  1. 得到按钮所在DIV的ID
  2. 07.full text query_string查询
  3. CSS3:FlexBox的详解
  4. python3(八)sys模块
  5. elementui el-from 怎样显示图片_vue2.0使用weui.js的uploader组件上传图片(兼容移动端)...
  6. 21副酷炫的动图让你了解各种数学概念
  7. Linux入侵痕迹检测方案【华为云技术分享】
  8. Python中 '==' 与'is' 以及它们背后的故事
  9. 单片机C语言任何位置跳转到任何指定地址 -转
  10. 传爱立信两大股东欲弹劾CEO卫翰思 股价应声反弹
  11. JPack插件创建了开源项目,欢迎wow player 加入
  12. css中字体的大小怎么设置,css样式中怎么设置字体大小
  13. 【爬虫】根据水文资料(水位/流量)爬取地理空间数据云遥感影像信息
  14. 中建政研马海顺-PPP项目EPC工程总承包全过程管控与风险防范
  15. c语言求正方体的表面积和体积,2.事先编写一个程序,计算正方体、球体和圆柱体的表面积和体积。(提示:声明一个抽象基类 container,派...
  16. VS2010 MVC4下载地址
  17. 苍溪城郊中学2021高考成绩查询,苍溪县城郊中学2019高考成绩喜报、一本二本上线人数情况...
  18. SUN J2EE企业应用技术学习计划
  19. matlab空间杜宾模型命令,matlab 空间杜宾模型
  20. Leetcode LCP2.分式化简

热门文章

  1. windows下如何在一台机器上安装两个MYSQL数据库
  2. Go 学习笔记(16)— 函数(02)[函数签名、有名函数、匿名函数、调用匿名函数、匿名函数赋值给变量、匿名函数做回调函数]
  3. 使用GeoServer导出地图数据GeoJSON并应用
  4. 用java实现给图片增加图片水印或者文字水印(也支持视频图像帧添加水印)
  5. c语言程序开平方,关于开平方的c程序
  6. java unit包_Java接入UNIT文本对话处理源码详解
  7. e.V4p.C0/index.php,php-fpm进程在Kubernetes中接收SIGKILL信号
  8. python 聚类_使用python+sklearn实现聚类性能评估中随机分配对聚类度量值的影响
  9. c++监听键盘_你会为颜值买单吗?杜伽fusion复古键盘晒单体验_键盘
  10. java单循环 比较得分_java – 为什么两个单独的循环比一个快?