文章转自 白月黑羽教Python

原理

说到web应用自动化测试,第一选择就是 Selenium 框架。

Selenium 是一个 Web 应用的自动化框架。

通过它,我们可以写出自动化程序像人一样(在浏览器里)操作web界面。 比如点击界面按钮,在文本框中输入文本,甚至一些拖拽操作,滚动界面的操作。

并且能够从web界面获取信息。 比如获取某个区域的文字内容,从而通过自动化程序进行分析处理。

Selenium3.0 的自动化架构是这样的

从上图可以看出:

我们写的自动化程序 需要使用一个Selenium组织提供的 客户端库。

我们程序的自动化请求都是通过使用这个库的接口对象完成的。 比如调用某个元素对象的click方法, 就会发送点击这个元素的请求给 下方的浏览器驱动。

这个自动化程序的请求是通过客户端库,构建出相应的HTTP请求,发送给浏览器驱动的。

浏览器驱动 也是一个独立的程序,是由浏览器厂商提供的, 不同的浏览器需要不同的浏览器驱动。 比如 Chrome浏览器和 火狐浏览器有 各自不同的驱动程序。

浏览器驱动接收到我们的自动化程序发送过来的界面操作请求后,会转发请求给浏览器, 让浏览器去执行对应的自动化操作。

浏览器执行完操作后,会将自动化的结果返回给浏览器驱动, 浏览器驱动再通过http响应的消息返回给我们的自动化程序的客户端库。

自动化程序的客户端库 接收到响应后,将结果转化为 数据对象 返回给我的自动化程序代码。我们的程序就可以知道这次自动化操作的结果如何了。

上述自动化的往返流程都是在我们的程序对Selenium客户端库的调用和返回之间发生的事情。

Selenium组织提供了多种主流编程语言的Selenium客户端库, 方便不同编程语言的开发者使用。

安装

Selenium环境的安装主要就是安装两样东西: 客户端库 和浏览器 驱动

安装客户端库

不同的编程语言选择不同的Selenium客户端库。

对应我们Python语言来说,Selenium客户端库的安装非常简单,用pip 命令即可。

打开 命令行程序,运行如下命令

pip install selenium

安装浏览器驱动

不同的浏览器选择不同的浏览器驱动。

目前来说,主流的浏览器就是 Chrome 和 火狐。 而 Chrome 浏览器对Selenium自动化的支持目前来说更加成熟一些。

我们就以Chrome浏览器为例。

Chrome 浏览器的驱动在谷歌的网站上。大家都知道,谷歌的网站,我们国内访问只能呵呵了。

当然,如果你能***,那么可以访问下面的链接, 获取最新版本的chrome浏览器驱动

https://sites.google.com/a/chromium.org/chromedriver/downloads

点击下图箭头处,下载最新驱动

注意浏览器驱动 必须要和浏览器版本匹配,如上图红圈里面的声明。

比如:当前Chrome驱动版本是2.37, 支持的Chrome浏览器版本号是 64 到 66 之间都可以。

为了方便不能***的朋友获取最新驱动。

白月黑羽会一直为大家在这里提供Windows版本上最新的驱动下载。大家只需点击下方链接即可

下载链接:Chrome驱动2.37版,支持Chrome浏览器64-66

这是个zip包,下载下来之后里面的程序文件 chromedriver.exe 解压到某个目录下面,注意这个目录的路径最好是没有中文名和空格的。

建议大家解压到 d:\webdrivers 目录下面。

也就是保证我们的Chrome浏览器驱动路径为 d:\webdrivers\chromedriver.exe

安装好以后,如何 使用Python语言结合Selenium编写 Web 自动化呢

访问原文网站,看 下一篇 操作web界面

Selenium Web自动化 原理的更多相关文章

  1. Selenium Web 自动化

    1 Selenium Web 自动化 - Selenium(Java)环境搭建 2 Selenium Web 自动化 - 如何找到元素 3 Selenium Web 自动化 - Selenium常用A ...

  2. Selenium Web 自动化 - 项目实战(三)

    Selenium Web 自动化 - 项目实战(三) 2016-08-10 目录 1 关键字驱动概述2 框架更改总览3 框架更改详解  3.1 解析新增页面目录  3.2 解析新增测试用例目录  3. ...

  3. Selenium Web 自动化 - 项目持续集成(进阶)

    Selenium Web 自动化 - 项目持续集成(进阶) 2017-03-09 目录 1 背景及目标2 环境配置  2.1 SVN的安装及使用  2.2 新建Jenkins任务3 过程分析 1 背景 ...

  4. Selenium Web 自动化 - 项目持续集成

    Selenium Web 自动化 - 项目持续集成 2017-02-13 目录 1环境准备  1.1 安装git  1.2 安装jenkins  1.3 安装jenkins插件  1.4 jekins ...

  5. Selenium Web 自动化 - Selenium(Java)环境搭建

    Selenium Web 自动化 - Selenium(Java)环境搭建 2016-07-29 1 下载JDK JDK下载地址:http://www.oracle.com/technetwork/j ...

  6. Selenium Web 自动化 - 如何找到元素

    Selenium Web 自动化 - 如何找到元素 2016-07-29 1. 什么是元素? 元素:http://www.w3school.com.cn/html/html_elements.asp ...

  7. Selenium Web 自动化 - Selenium常用API

    Selenium Web 自动化 - Selenium常用API 2016-08-01 目录 1 对浏览器操作  1.1 用webdriver打开一个浏览器  1.2 最大化浏览器&关闭浏览器 ...

  8. Selenium Web 自动化 - 项目实战环境准备

    Selenium Web 自动化 - 项目实战环境准备 2016-08-29 目录 1 部署TestNG  1.1 安装TestNG  1.2 添加TestNG类库2 部署Maven  2.1 mav ...

  9. Selenium Web 自动化 - 项目实战(一)

    Selenium Web 自动化 - 测试框架(一) 2016-08-05 目录 1 框架结构雏形2 把Java项目转变成Maven项目3 加入TestNG配置文件4 Eclipse编码修改5 编写代 ...

随机推荐

  1. 几个CSS-content的小例子

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. (匹配 最小路径覆盖)Air Raid --hdu --1151

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=1151 http://acm.hust.edu.cn/vjudge/contest/view.action ...

  3. Python + Robotframework + Appium 之APP自动化测试实践(一)

    前面的文章已经介绍了Robotframework+Appium的安装及小试牛刀(For Android) 下面来个简单的实践,话不多说,还以是计算器为例,直接上代码,详情如下: *** Setting ...

  4. Elasticsearch 在 windows 和 ubuntu 下详细安装过程

    1. 前言 作为一名 .NET 平台开发者,选择开发框架时总会面临更多的局限性,不过对于搜索这种刚需服务来说,开源框架可供选择的余地还是比较大的.笔者之前用的是 Lucene.net ,现在深感其使用 ...

  5. Microsoft SQL Server 2012 管理 (1): 安装配置SQL Server 重点

    SQL Server 可以在实例,数据库,列,查询分别指定排序规则 /* Module 1 - working with Clollations */ -- 1.1 Obtain the Instan ...

  6. TFS中设置任务中的“计划开始时间”为可编辑状态

    问题现象 如果使用TFS系统的默认模板CMMI新建团队项目,你会发现在网页浏览器中,任务工作项的"计划开始日期"和"计划结束日期"的类型是普通字符,并且不能修改 ...

  7. Unity3d ugui 实现image代码换图

    核心脚本代码 Image IMGE = transform.Find("IMGE").GetComponent<Image>();Sprite sprite1 = Re ...

  8. A - 开门人和关门人(sort+结构体)

    点击打开链接 每天第一个到机房的人要把门打开,最后一个离开的人要把门关好.现有一堆杂乱的机房签  到.签离记录,请根据记录找出当天开门和关门的人.  Input 测试输入的第一行给出记录的总天数N ( ...

  9. 欢迎使用CSDN-markdown编辑器u

    这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一 ...

  10. Flask 中的 Response

    1.Flask中的HTTPResponse @app.route("/") # app中的路由route装饰器 def index(): # 视图函数 return "I ...