Selenium简介
Selenium是一个开源的web自动化测试框架,支持多种语言开发和跨浏览器平台,工具集包括Selenium IDE、Selenium Grid、Selenium RC等。
Selenium发展
从2004年至今,selenium经历了3个版本,即Selenium1.0,Selenium2.0,Selenium3.0;
Selenium 1.0 = Selenium IDE + Selenium Grid + Selenium RC
SeleniumIDE:是Firefox的扩展插件,支持用户录制和回访测试。录制/回访模式存在局限性,对实际测试工作并不适合;针对FireFox浏览器而言,可以直接在附加组件中进行搜索SeleniumIDE进行安装即可;如果需要在Chrome中安装也可,但是Chrome商店的话需要翻墙下载,如不翻墙可以直接使用离线文件安装;
Chrome中安装:
选择"更多工具"---->选择"扩展程序",然后打开开发者模式(在右上角);
最后将下载的离线文件拖到该页面即可进行安装;
离线文件:回复:seleniumIDE 获取下载链接;
安装完成后可以通过SeleniumIDE进行脚本录制,录制可导出python语言类型的脚本,该脚本虽在实际工作不能直接使用,但可以用于进行辅助参考。
Selenium RC:Selenium1.0的核心,Selenium RC 支持多种不同语言编写的自动化测试脚本,在浏览器中运行JavaScript应用,使用浏览器内置的JavaScript 翻译器来翻译和执行selenese命令(selenese 是selenium命令集合)。通过Selenium RC的服务器作为代理服务器去访问应用,从而达到测试的目的。
SeleniumGrid:帮助工程师使用Selenium API控制分布在一系列机器上的浏览器实例,支持并发运行更多测试。
Selenium2.0 = Selenium1.0 + WebDriver
Selenium WebDriver:提供了各种语言环境的API来支持更多控制权和编写符合标准软件开发实践的应用程序;
selenium3.0在2.0的基础上增加了对win10系统的Edge浏览器和Mac系统Safari浏览器的支持,并且在启动Firefox浏览器时也必须使用浏览器驱动geckodriver.去掉了Selenium RC,因此selenium 3.0的学习核心也是WebDriver.
WebDriver原理
- 客户端即pycharm设计的脚本发送请求,基于json wire格式的协议进行创建一个绑定特定端口的会话连接(Selenium RC)相当于服务端;
- 服务端又会根据不同的浏览器驱动进行驱动不同类型的浏览器(浏览器不同的类型(四种内核:IE、firefox、chrome、opera,不同类型不同版本具有不同的驱动)),此时服务器会将客户端所发送过来的事件指令通过驱动在浏览器中进行完成操作,如果浏览器操作完成后会将结果返回给服务端,服务端将结果返回给客户端;
Selenium安装及使用
安装selenium的三种方式:
第一种方式:cmd环境下,用pip install selenium
第二种方法:下载selenium安装包手动安装 下载地址:https://pypi.org/project/selenium/ 选择扩展名为gz的源码包进行下载
下载后解压,cmd环境进入到setup.py文件所在目录
下载后解压,cmd环境进入到setup.py文件所在目录
第三种方式:直接打开pycharm,File | Settings | Project: Python2020 | Project Interpreter,点击+号进行搜索selenium进行安装即可;
安装完毕后需要准备对应浏览器的驱动器;
- 查看当前机器浏览器的版本:
- 可以使用对应的浏览器进行访问以下网址即可获取对应的版本相关信息 http://mybrowse.osfipin.com/
- 下载对应浏览器版本的驱动器(以下都是官方地址):
- Chrome下载地址:https://chromedriver.storage.googleapis.com/index.html
- FireFox下载地址:https://github.com/mozilla/geckodriver/releases
- IE下载地址:https://selenium-release.storage.googleapis.com/index.html
- Edge下载地址:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/如果edge的版本是18以上的话,则需要使用管理员打开dos,执行以下命令即可:
DISM.exe /Online /Add-Capability /CapabilityName:Microsoft.WebDriver~~~~0.0.1.0
- 下载好驱动器后,可以新建一个文件夹,并将该驱动器所在路径配置到path环境变量中(或者直接将下载的驱动器放置到python的环境变量中即可)
注意:如果是一直先打开pycharm的状态进行配置环境变量的话,则需要将pycharm关闭重新打开让其环境变量生效;
访问CRM系统
# Description:需要引用selenium模块打开一个网页
# 引用模块
from selenium import webdriver # 创建驱动器对象:必须要有对象的浏览器驱动器,并且与对应的浏览器版本一致,否则驱动器对象无法创建;
get_dri = webdriver.Chrome()
# 打开网页
get_dri.get("https://www.baidu.com")