『心善渊』Selenium3.0基础 — 2、Selenium测试框架环境搭建(Windows)
Selenium环境搭建步骤:
- 安装浏览器。
- 下载浏览器对应的Selenium驱动。
- 把下载好的Selenium驱动,与Python进行整合。
- 安装Selenium自动化测试框架。
- 在Python代码中导入Selenium相关API,进行操作。
1、浏览器安装
下载并安装好需要的浏览器,如下:
Chrome
浏览器、Firefox
浏览器、Safari
浏览器、Edge
浏览器、Opera
浏览器等。
根据自己的需求安装对应的浏览器,非常简单,不做过多说明。
2、浏览器驱动下载
(1)ChromeDriver for Chrome
如果使用Chrome
浏览器进行自动化测试,就需要下载ChromeDriver
驱动。
ChromeDriver
驱动下载地址:http://chromedriver.storage.googleapis.com/index.html。- 国内镜像地址:https://npm.taobao.org/mirrors/chromedriver。
- 版本对应地址:http://chromedriver.storage.googleapis.com/2.43/notes.txt。
选择指定的ChromeDriver
版本,可根据不同的平台(Win、Mac、Linux)下载指定的ChromeDriver
。
如下图所示:
(2)Geckodriver for Firefox
如果使用Firefox进行自动化测试,在Selenium 1.0
或者Selenium 2.0
是可以直接驱动Firefox进行测试的,但如果使用的是Selenium 3.0
,则需要下载geckodriver
驱动。
Geckodriver
驱动下载地址:https://github.com/mozilla/geckodriver/releases。- 国内镜像地址:https://npm.taobao.org/mirrors/geckodriver/。
根据不同的平台(Win、Mac、Linux等)下载指定的geckodriver驱动。
如下图所示:
提示:
Firefox 47
及以前版本,不需要geckodriver
驱动。geckodriver v0.19.0
:Firefox 55
(及更高版本),Selenium3.5
(及更高)geckodriver v0.21.0
:Firefox 57
(及更高版本),Selenium3.11
(及更高)- 我应用的版本
v0.24.0
和v0.26.0
,Firefox 76
,Selenium3.14
。
(3)IEDriverServer for IE
如果使用IE进行自动化测试,就需要下载IEDriverServer
驱动。
IEDriverServer下载地址:http://selenium-release.storage.googleapis.com/index.html。
根据Win平台是32位还是64位,下载指定的IEDriverServer驱动。
如下图所示:
IEDriverServer
的版本号和Selenium
的版本号一定要一致。
如果执行脚本的时候会有如下报错:
Unexpected error launching Internet Explorer. Protected Mode settings are not the same for all zones.
说明浏览器的安全性设置较高,解决方法:
修改IE的设置,打开IE --->选项--->安全,不选中启用保护模式。
如下图所示:
(4)for Edge
在Windows 10中Edge浏览器的驱动由Microsoft提供,也需要单独下载。
下载地址:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/。
需要根据Edge浏览器版本下载对应的版本驱动。
1)如何查看windows 10中Edge浏览器的版本
方式一:打开Edge浏览器,进入设置
设置的界面的最下方,就可以查看到Edge浏览器的版本。
方式二:开始 —> 设置 —> 系统 —> 关于
就可以查看到Edge浏览器的版本,如下图所示:
2)Edge浏览器18版本的Selenium驱动安装
Edge浏览器18版本以前的Selenium驱动,在上面网址中,下载对应的驱动版本就可以了。
Edge浏览器18版本,需要在Windows 10系统的命令提示符中(管理员方式打开),执行如下命令即可。
DISM.exe /Online /Add-Capability /CapabilityName:Microsoft.WebDriver~~~~0.0.1.0
如下图:
安装完成之后,我们就可以适用Selenium测试Edge浏览器了,不需要在下载单独的Edge浏览器驱动了。
(5)OperaDriver for Opera
如果使用Opera
浏览器进行自动化测试,就需要下载operadriver
驱动。
operadriver
驱动下载地址:https://github.com/operasoftware/operachromiumdriver/releases。- 国内镜像地址:https://npm.taobao.org/mirrors/operadriver/。
下载驱动的时候,一定要看好驱动支持的浏览器版本。
如下图所示:
3、浏览器驱动与Python整合
将下载好的浏览器驱动解压后,如:chromedriver.exe
放置在Python安装路径的根目录下即可。
这样一步操作,就完成了浏览器驱动与Python的整合。
如下图所示:
4、安装Selenium
在Windows环境下,安装方式有两种(任选一种即可)
(1)在线安装
- 命令行输入
pip install -U selenium
- 若Selenium安装超时失败,可以试试国内源:
- 使用阿里云镜像:
pip install -i http://mirrors.aliyun.com/pypi/simple/ selenium
- 使用清华大学镜像:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ selenium
- 使用中国科技大学镜像:
pip install -i https://pypi.mirrors.ustc.edu.cn/simple/ selenium
- 使用豆瓣镜像:
pip install -i http://pypi.douban.com/simple/ selenium
- 使用阿里云镜像:
- 安装Selenium指定版本(例如3.9.0)
命令行输入pip install -U selenium==3.9.0
(2)离线安装
打开网址:https://pypi.org/project/selenium/
点击Download files
,下载后缀名为tar.gz
包文件。
下载完成后,进行解压,例如:selenium-3.14.0.tar.gz
。
解压后的文件目录,如下图所示:
打开命令行,跳转到解压后的目录路径,输入安装命令python setup.py install
即可。
安装完成后,打开命令行,输入pip list
,查询已安装的模块,如下图:
如图所示Selenium就安装成功。
同时在PyCharm中导入Selenium模块,没有报错,就可以正常在PyCharm中使用Selenium了。
# 1.导入selenium包
from selenium import webdriver
5、使用Selenium启动谷歌浏览器
在Python的IDE中,编写如下代码,如:PyCharm。
"""
1.学习目标
掌握使用selenium启动谷歌浏览器
2.操作步骤
2.1 导入selenium包
2.2 选择并打开浏览器(谷歌)
2.3 输入百度网址
2.4 对网址操作
2.5 关闭浏览器
3.需求
使用selenium实现在谷歌浏览器中打开百度网站
4.注意事项
4.1 脚本的名称一定不能为selenium
4.2 输入网址的时候要加上协议,如:http://
"""
# 学习selenium主要学习的是对webdriver的使用
# 1.导入selenium包
from selenium import webdriver
from time import sleep
# 2.选择并打开浏览器(谷歌)
driver = webdriver.Chrome()
# 3. 输入百度网址
driver.get("http://www.baidu.com")
sleep(3)
# 4.对网址的操作
# 5.关闭浏览器
driver.quit()
6、拓展说明
(1)屏蔽“Chrome 正受到自动测试软件的控制“提示信息
81版不好用,75版可以。
"""
1.学习目标
熟悉selenium屏蔽谷歌浏览器的信息提示栏
2.操作步骤
1.导包
2.添加谷歌浏览器加载项
屏蔽信息提示栏
3.打开谷歌浏览器——将屏蔽信息提示栏参数传入到打开浏览器中
4.打开地址
5.关闭浏览器
总结:
options = webdriver.ChromeOptions() # 实例化谷歌浏览器加载项
options.add_argument("disable-infobars") # 去掉谷歌浏览器信息提示栏
webdriver.Chrome(chrom_options=options) # 使用浏览器加载项
3.需求
使用selenium将谷歌浏览器的信息提示栏屏蔽
"""
# 1.导入selenium包
from selenium import webdriver
from time import sleep
# 2.添加谷歌浏览器加载项
options = webdriver.ChromeOptions()
options.add_argument("disable-infobars")
# 3.打开谷歌浏览器——将屏蔽信息提示栏参数传入打开浏览器中
"""
DeprecationWarning: use options instead of chrome_options
弃用警告:使用选项代替chrome_options,改用options选项
"""
driver = webdriver.Chrome(options=options)
# 4.打开地址
url = "http://www.baidu.com"
driver.get(url)
sleep(3)
# 5.关闭浏览器
driver.quit()
(2)Chrome模拟移动端
打开chrome —> F12 —> 开启移动端视角,如图所示,可以模拟iphone6等设备。
也可以添加或删除设备,点击Edit进行设置。
在脚本里deviceName
属性,要定义为所要模拟的设备名。
脚本代码如下:
"""
1.学习目标
熟悉selenium使用谷歌浏览器模拟移动端
2.操作步骤
1.导包
2.添加谷歌浏览器加载项
设置模拟的手机型号,字典类型的参数
mobileEmulation = {"deviceName": "iPhone X"}
options=webdriver.ChromeOptions()
options.add_experimental_option("mobileEmulation", mobileEmulation)
注:"mobileEmulation"为固定写法。
3.打开谷歌浏览器——将参数传入打开的浏览器中
4.打开地址
5.关闭浏览器
3.需求
使用selenium打开谷歌浏览器,模拟iPhoneX手机
"""
# 1.导入selenium包
from selenium import webdriver
from time import sleep
# 2.添加谷歌浏览器加载项
mobileEmulation = {"deviceName": "iPhone X"}
options = webdriver.ChromeOptions()
# 因为传入的是字典类型的数据,所以使用的add方法也不一样
options.add_experimental_option("mobileEmulation", mobileEmulation)
# 3.打开谷歌浏览器——将模拟移动端的参数,传入打开的浏览器中
# options和chrome_options一样,chrome_options将弃用。
driver = webdriver.Chrome(options=options)
# 4.打开地址
url = "http://www.baidu.com"
driver.get(url)
sleep(3)
# 5.关闭浏览器
driver.quit()
『心善渊』Selenium3.0基础 — 2、Selenium测试框架环境搭建(Windows)的更多相关文章
- 『心善渊』Selenium3.0基础 — 24、Selenium的expected_conditions模块详细介绍
目录 1.EC模块介绍 2.EC模块常用类 3.EC模块的使用 4.EC模块综合使用 (1)title_is(title)示例 (2)presence_of_element_located(locat ...
- 『心善渊』Selenium3.0基础 — 11、Selenium对元素常用操作
目录 1.Selenium对元素常用操作 2.Selenium对元素的其他操作 1.Selenium对元素常用操作 操作 说明 click() 单击元素 send_keys() 模拟输入 clear( ...
- 『心善渊』Selenium3.0基础 — 12、Selenium操作鼠标和键盘事件
目录 (一)对鼠标的操作 1.鼠标事件介绍 2.ActionChains 类鼠标操作的常用方法 3.perform()方法 4.鼠标事件操作步骤 5.示例 (1)右键单击.左键双击 (2)鼠标拖拽动作 ...
- 『心善渊』Selenium3.0基础 — 3、使用Selenium操作浏览器对象的基础API
目录 1.导入Selenium库 2.创建浏览器对象 3.浏览器窗口大小设置 4.浏览器位置设置 5.请求访问网址 6.浏览器页面前进.后退和刷新 7.关闭浏览器 相比于高大上的各种Selenium进 ...
- 『心善渊』Selenium3.0基础 — 6、Selenium中使用XPath定位元素
目录 1.Selenium中使用XPath查找元素 (1)XPath通过id,name,class属性定位 (2)XPath通过标签中的其他属性定位 (3)XPath层级定位 (4)XPath索引定位 ...
- 『心善渊』Selenium3.0基础 — 1、Selenium自动化测试框架介绍
目录 1.Selenium介绍 2.Selenium的特点 3.Selenium版本说明 4.拓展:WebDriver与Selenium RC的区别 5.Webdriver工作原理 1.Seleniu ...
- 『心善渊』Selenium3.0基础 — 29、使用HTMLTestRunner生成unittest的HTML报告
目录 1.HTMLTestRunner介绍 2.HTMLTestRunner的使用 3.测试报告示例 4.封装成模块 1.HTMLTestRunner介绍 HTMLTestRunner是一个基于uni ...
- 『心善渊』Selenium3.0基础 — 4、Selenium基础元素定位详解
目录 1.什么是元素定位 2.Selenium元素定位常用API (1)By_id 定位 (2)by_name 定位 (3)by_class_name 定位 (4)by_tag_name 定位 (5) ...
- 『心善渊』Selenium3.0基础 — 19、使用Selenium操作文件的上传和下载
目录 1.Selenium实现文件上传 (1)页面中的文件上传说明 (2)文件上传示例 (3)总结 2.Selenium实现文件下载 (1)Firefox浏览器文件下载 1)操作步骤: 2)文件下载示 ...
随机推荐
- Http协议有什么特点,能说说这些特点体现在哪些方面吗?
Http协议有什么特点,能说说这些特点体现在哪些方面吗? Http协议是我们最常用的接口,那它有什么特点呢? 无连接 无状态 还有呢? 灵活,简单快速 还有它的这些特点体现在哪些方面?你也要能说一说. ...
- HOOK技术之SSDT hook(x86/x64)
x86 SSDT Hook 32位下进行SSDT Hook比较简单,通过修改SSDT表中需要hook的系统服务为自己的函数,在自己的函数中进行过滤判断达到hook的目的. 获取KeServiceDes ...
- 爬虫:获取动态加载数据(selenium)(某站)
如果网站数据是动态加载,需要不停往下拉进度条才能显示数据,用selenium模拟浏览器下拉进度条可以实现动态数据的抓取. 本文希望找到某乎某话题下讨论较多的问题,以此再寻找每一问题涉及的话题关键词(侵 ...
- .NET平台系列9 .NET Core 3.0 / .NET Core 3.1 详解
系列目录 [已更新最新开发文章,点击查看详细] .NET Core 3.0 于 2019年9月23日发布,重点是增加对同时支持使用 Windwos Forms.WPF 和 Entity Frm ...
- tail -fn 1000 test.log | grep '关键字' 按照时间段 sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log /var/log/wtmp 该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件
Linux 6种日志查看方法,不会看日志会被鄙视的 2020-02-11阅读 7.3K0 作为一名后端程序员,和Linux打交道的地方很多,不会看Linux日志,非常容易受到来自同事和面试官的嘲讽 ...
- Linux下Firefox打开文件jnlp文件
ubuntu(linux)打开jnlp文件 咘咘 2019-05-20 15:12:48 1331 收藏展开 前提条件是安装有java环境.whereis java 查看自己java安装目录.本人是在 ...
- Scala 安装与配置
安装准备 由于 Scala 运行于 Java 平台,因此 Scala 之前需要确保系统安装 JDK Windows 中安装 Scala 1. 下载 scala-2.11.2.msi 安装包 点击安装文 ...
- STM32电路设计注意
以后画STM32的电路板 VDDA一定要接 张JF说 VDDA是给内部的时钟电路供电的 还有一定要留 串口或者 下载调试口(串口) 或者显示器接口 输入输出设备最好都留着 这样才能方便调试
- MindSpore激活函数总结与测试
技术背景 激活函数在机器学习的前向网络中担任着非常重要的角色,我们可以认为它是一个决策函数.举个例子说,我们要判断一个输出的数据是猫还是狗,我们所得到的数据是0.01,而我们预设的数据中0代表猫1代表 ...
- Python+Selenium学习笔记11 - python官网的tutorial - 定义函数
1 def f(a, L=[]): 2 L.append(a) 3 return L 4 5 print f(5) 6 print f(2) 输出 1 def f(a, L=None): 2 if L ...