首页 > 在Ubuntu 14.04.5 LTS上安装python模块selenium 3实录

在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

更多相关:

  • 每次当selenium启动chrome浏览器的时候,chrome浏览器很干净,没有插件、没有收藏、没有历史记录,这是因为selenium在启动chrome时为了保证最快的运行效率,启动了一个裸浏览器,这就是为什么需要配置参数的原因,但是有些时候我们需要的不仅是一个裸浏览器。selenium启动配置参数接收是ChromeOption...

  •   当然有部分童鞋反映这样设置了以后,部分css样式表修改了还是不管用,那么我们就需要针对浏览器做点骚操作了: 1.chrome(谷歌浏览器) (1)、F12在调试页面Network中勾选Disable cache (2)、按F5或右键“重新加载”刷新页面内容 (3)、 使用Ctrl+Shift+R或者Ctrl+...

  • 我们的使命是让您了解最新和最酷的Web开发趋势。这就是为什么我们每个月都会发布一些精选的资源,这些资源是我们偶然发现并认为值得您关注的。 1.Tessaract.js 强大的javascript(节点和浏览器)库,用于从图像中提取文本。它能自动检测文本的位置和方向,识别60多种语言,包括中文、阿拉伯语和俄语等。 2.OverlayS...

  • vue 在浏览器控制台怎么调试 谷歌插件vue Devtools 问题: vuejs里面的变量,怎么用浏览器的console查看? 例如,想在chrome里用console.log查看变量$data,会显示undefined。 解决方案: 再main.js里面声明window.Vue = new Vue window.Vue = n...

  • 温馨提示:以下系列的面试题是通过整合网上各位大牛的文章而成,站在巨人的肩膀上,能够让我们更进一步。 1、页面从输入URL到页面加载显示完成,这个过程中都发生了什么? 输入域名地址发送域名地址至DNS服务器并获得对应WEB服务器IP地址与WEB服务器建立TCP连接服务器的永久重定向响应(从http://example.com到http:...

  • 很多情况下需要对视频格式转换才能正常观看,下面就由微侠网小编给您介绍这款软件,佳佳MPEG4格式转换器是专业的MPEG4、H264和MP4格式转换工具,软件支持将MPEG4视频转换成多种格式音频播放,操作简单,转换速度快。看完的小伙伴可以关注微侠网下载最新版软件以及查看最新攻略及资讯!软件介绍超快的转换速度和完美的转换质量。通过顶级音...

  • 代码量:9行 码云仓库:https://gitee.com/Gaooo/2016035107059.git 实现时间:emmmmm(9行代码,自己估计!!) 程序对表达式类型的支持程度:全部支持! 能支持两个操作数,一种运算符。能支持两个操作数的简单四则运算(只有一个操作符)。能支持简单混合四则运算(最多有3个操作符,没有括号)。能支...

  • 一、API     1. 出现新的上下文接口:SparkSession,统一了SQLContext和HiveContext,并且为SparkSession开发了新的流式调用的configuration API     2. 统一了DataFrame和DataSet。DataFrame相当于DataSet[Row],以及DataSet的...

  • 官网: http://www.redmine.org/ http://demo.redmine.org/ 下载: http://www.redmine.org/projects/redmine/wiki/Download   Redmine 是一个开源的、基于Web的项目管理和缺陷跟踪工具。它用日历和甘特图辅助项目及进度可视化显示。同...

  •     项目编号:BBZC12-106-1 项目名称:重庆市公安局北碚分局所需容灾备份设备及软件采购 重庆市北碚区公共资源综合交易中心 二〇一二年六月二十五日 第一部分 招标邀请书 重庆市北碚区公共资源综合交易中心根据重庆市北碚区政府采购办公室下达的采购任务,拟对重庆市公安局北碚分局所需容灾备份设备及软件采购进行公开招标,欢迎...