前言
最近想要实现和Python脚本联动的小程序,想了一些要实现测试的话还是得用Selenium去自动化实现邮箱报表或者是实现截图html的图片,都是实现起来比较好的思路。这篇为开篇介绍,后续会编写自动化小程序。
一、Selenium(WEB自动化工具)
1.简介
Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),火狐, 谷歌浏览器,360浏览器等。这个工具的主要功能包括:测试与浏览器的兼容性——测试应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成.Net、JAVA,PHP等不同语言的测试脚本。
2.功能
- 框架底层使用JavaScript模拟真实用户对浏览器进行操作。测试脚本执行时,浏览器自动按照脚本代码做出点击,输入,打开,验证等操作,就像真实用户所做的一样,从终端用户的角度测试应用程序。
- 使浏览器兼容性测试自动化成为可能,尽管在不同的浏览器上依然有细微的差别。
- 使用简单,可使用Java,Python等多种语言编写用例脚本。
3.优势
据Selenium主页所说,与其他测试工具相比,使用Selenium的最大好处是:
Selenium测试直接在浏览器中运行,就像真实用户所做的一样。Selenium测试可以在Windows、Linux和Mac上的Internet Explorer、Chrome和Firefox中运行。其他测试工具都不能覆盖如此多的平台。使用Selenium和在浏览器中运行测试还有很多其他好处。
Selenium完全开源,对商业用户也没有任何限制,支持分布式,拥有成熟的社区与学习文档。
4.版本
4.1.selenium1.0
组件
selenium IDE
1、firefox插件(只支持Firefox)
2、用处
实现简单的自动化
用来提交bug(对于描述比较复杂的bug进行录制成脚本提供给开发回放)
selenium Grid
用来做分布式自动化,详见文档
独立的.jar包
selenium RC(Reomte Control)--核心
用处:
1、远程控制
2、不同语言,不同浏览器去使用
RC :不是一个独立的工具,是被集成在selenium server里面,后面Grid也被集成在里面
不同语言启动selenium的方法--RC原理
java(selenium -java.jar) ---> selenium server(.jar包) ---> Firefox
python(selenium -python.py)-->selenium server --> chrome浏览器
4.2.selenium 2.0
历史
Google WebDriver --> 针对chrome浏览器的自动化
2009年,webdriver(稳定性好)与selenium1.0(支持多语言,多浏览器)合并 = selenium 2.0
selenium 1.0 + webdriver = selenium 2.0
RC与webdriver,在2.0放弃RC,因为要向下兼容,所以保留RC
主推的逻辑
由RC转换成webdriver
java(selenium -java.jar) --->集成在.jar包里面的驱动文件 ---> Firefox
python(selenium -python.py)-->chromedriver.exe(遵循webdriver的驱动文件) --> chrome浏览器
python(selenium -python.py)-->IEDriverServer.exe(遵循webdriver的驱动文件) --> IE浏览器
python(selenium -python.py)-->selenium server (遵循webdriver的驱动文件) --> safari浏览器
Web Driver W3C:webdriver的官方文档 WebDriver
由此可见,2.0虽然提高了稳定性,但是其他功能依旧杂乱。
4.3.selenium 3.0
浏览器驱动规范化:
各自的浏览器维护各自的浏览器
2016年 selenium beta版
java(selenium -java.jar) --->geckodriver.exe ---> Firefox浏览器(比较不稳定)
python(selenium -python.py)-->chromedriver.exe(遵循webdriver的驱动文件) --> chrome浏览器
python(selenium -python.py)-->IEDriverServer.exe(遵循webdriver的驱动文件) --> IE浏览器
python(selenium -python.py)-->驱动直接集成到Mac系统(OS X)(/user/bin/safaridriver)里面 --> safari浏览器
selenium 3.0 = selenium 2.0 - RC
二、使用步骤
1.安装Selenium
Python提供了第三方Selenium包,因此可以直接使用pip安装
pip install selenium
若是下载很慢的话使用镜像:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple selenium==3.141.0
或者在anaconda上的Environments上指定虚拟环境下搜索下载selenium库:
apply下载就行。
2.下载浏览器驱动
1.谷歌浏览器驱动
我们之所能操作浏览器,是因为我们有该浏览器对应的驱动。若是缺少驱动我们并不能对浏览器进行操作:
首先我们需要知道浏览器的版本,输入:
chrome://version/
知道浏览器驱动之后便去官网找到相应的驱动下载:Chrome驱动下载
这里下61就好了,之后选择对应操作系统的版本下载:
把下载好的驱动放到Google Chrome的Application目录之下:
C:\Program Files (x86)\Google\Chrome\Application
之后在系统环境变量Path下加入路径的名称:
2.火狐浏览器驱动
在selenium3.x开始,其在连接火狐浏览器时就需要下载对应的驱动了。
驱动下载地址:Fire Fox驱动下载
和谷歌驱动一样的步骤,这里不再重复。
3.测试
我们可以先初步使用代码来操作浏览器,看看安装的库是否管用:
- **webdriver.Chrome()**:连接谷歌浏览器
- **webdriver.Firefox()**:连接火狐浏览器
from selenium import webdriver
#打开谷歌浏览器
driver = webdriver.Chrome()
#打开火狐浏览器
driver1 = webdriver.Firefox()
Selenium包提供了打开某一个网页的接口方法:get(url)
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
参数url:表示我们想要打开的某一个网页地址,该get()方法无返回值 。
这篇博客写到此,下一篇将写如何使用selenuim去定位浏览器元素实现自动化程序。
点关注,防走丢,如有纰漏之处,请留言指教,非常感谢
以上就是本期全部内容。我是fanstuck ,有问题大家随时留言讨论 ,我们下期见
参阅:
Selenium版本介绍
Selenium:简介
版权归原作者 fanstuck 所有, 如有侵权,请联系我们删除。