工具:
python-2.7.13
Selenium 2.53.6
Firefox 47.0.1
chrome 72.0.3626.121
chromedriver 2.46
一、Selenium介绍
Selenium 经历了两个版本,Selenium 1.0 和 Selenium 2.0,本文仅介绍Selenium2的原理,在Selenium 2.0 主推的是WebDriver,Selenium2又名Selenium Webdriver。
Selenium 是什么?一句话,自动化测试工具。它支持各种浏览器,包括 Chrome,Safari,Firefox 等主流界面式浏览器,如果你在这些浏览器里面安装一个 Selenium 的插件,那么便可以方便地实现Web界面的测试。
Selenium 2,又名 WebDriver,它的主要新功能是集成了 Selenium 1.0 以及 WebDriver(WebDriver 曾经是 Selenium 的竞争对手)。也就是说 Selenium 2 是 Selenium 和 WebDriver 两个项目的合并,即 Selenium 2 兼容 Selenium,它既支持 Selenium API 也支持 WebDriver API。
中文文档:http://selenium-python-zh.readthedocs.io/en/latest/index.html
英文文档:http://selenium-python.readthedocs.io/index.html
(1)Selenium2简介
Selenium是一个用于Web应用程序测试的工具,支持多平台、多浏览器、多语言去实现自动化测试,Selenium2将浏览器原生的API封装成WebDriver API,可以直接操作浏览器页面里的元素,甚至操作浏览器本身(截屏,窗口大小,启动,关闭,安装插件,配置证书之类的),所以就像真正的用户在操作一样。
Webdriver的一个简单的架构图,如下图所示:
(2)Selenium2原理
webdriver是按照server–client的经典设计模式设计的:
server端就是remote server,可以是任意的浏览器:我们的脚本启动浏览器后,该浏览器就是remote server,它的职责就是等待client发送请求并做出相应;
client端简单说来就是我们的测试代码:测试代码中的一些行为,比如打开浏览器,转跳到特定的url等操作是以http请求的方式发送给被server端(也就是被测浏览器)server接受请求,并执行相应操作,并在response中返回执行状态、返回值等信息;
简单介绍一下webdriver的工作原理:
启动浏览器后,selenium-webdriver会将目标浏览器绑定到特定的端口,启动后的浏览器则作为webdriver的remote server。
客户端(也就是测试脚本),借助ComandExecutor发送HTTP请求给sever端(通信协议:The WebDriver Wire Protocol,在HTTP request的body中,会以WebDriver Wire协议规定的JSON格式的字符串来告诉Selenium我们希望浏览器接下来做什么事情)。
Sever端需要依赖原生的浏览器组件,转化Web Service的命令为浏览器native的调用来完成操作。
注:
the WebDriver Wire Protocol是Selenium自己设计定义的协议,这套协议非常之强大,几乎可以操作浏览器做任何事情,包括打开、关闭、最大化、最小化、元素定位、元素点击、上传文件等。
WebDriver Wire协议是通用的,也就是说不管FirefoxDriver还是ChromeDriver,启动之后都会在某一个端口启动基于这套协议的Web Service。
(3)Selenium2的安装
方法1.直接用命令加载selenium
pip install -U selenium
备注:如果下载selenium出错,可借鉴https://www.jianshu.com/p/2d48cca6e620
方法2.下载selenium离线包
点击下载selenium 2.53.6
下载.gz格式后,解压
在安装目录下找到setup.py,打开CMD,输入python setup.py install
然后,使用 pip show selenium 检查是否安装成功
注:若pip show selenium提示pip出错;可以把E:\python37\Scripts路径放到环境变量path中
二、安装python、pycharm
下载Python2.7.13 (Window平台安装包,包格式为:python-XYZ.msi文件)
1、安装python-2.7
2、配置环境变量path中添加D:\Python27
3、cmd命令校验python安装成功
三、浏览器和对应驱动下载
(1)使用chrome浏览器
2、下载chromedriver驱动 : 下载chromedriver
3、解压后,将chromedriver.exe复制到C:\Program Files (x86)\Google\Chrome\Application路径下,并加该路径配置到环境变量。(或者直接把Chromedriver.exe放到python.exe同目录下)
备注:Chrome版本与chromedriver版本对照及下载
(2)使用Firefox浏览器
2、下载Firefox驱动:下载geckodriver
3、解压后,将geckodriver.exe直接放到python.exe同目录下即可
备注:firefox56以下不需要安装webdriver驱动,firefox57(firefox57及以上版本)需要安装geckodriver-v0.19.1-win32/64。
注意:
python2兼容的Firefox版本:47及以下
python3兼容的Firefox版本:48及以上
参考资料:
https://www.cnblogs.com/leeboke/p/5014058.html
https://www.cnblogs.com/itstu/p/6877794.html
https://www.cnblogs.com/jxba/p/9022780.html
https://blog.csdn.net/hello_global/article/details/65446446
https://www.cnblogs.com/hellosecretgarden/p/9206648.html
https://blog.csdn.net/casilin/article/details/6077964
https://www.ibm.com/developerworks/cn/web/1209_caimin_seleniumweb/index.html
https://blog.csdn.net/github_37216944/article/details/79053781