Selenium Web自动化 原理
文章转自 白月黑羽教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自动化 原理的更多相关文章
- Selenium Web 自动化
1 Selenium Web 自动化 - Selenium(Java)环境搭建 2 Selenium Web 自动化 - 如何找到元素 3 Selenium Web 自动化 - Selenium常用A ...
- Selenium Web 自动化 - 项目实战(三)
Selenium Web 自动化 - 项目实战(三) 2016-08-10 目录 1 关键字驱动概述2 框架更改总览3 框架更改详解 3.1 解析新增页面目录 3.2 解析新增测试用例目录 3. ...
- Selenium Web 自动化 - 项目持续集成(进阶)
Selenium Web 自动化 - 项目持续集成(进阶) 2017-03-09 目录 1 背景及目标2 环境配置 2.1 SVN的安装及使用 2.2 新建Jenkins任务3 过程分析 1 背景 ...
- Selenium Web 自动化 - 项目持续集成
Selenium Web 自动化 - 项目持续集成 2017-02-13 目录 1环境准备 1.1 安装git 1.2 安装jenkins 1.3 安装jenkins插件 1.4 jekins ...
- Selenium Web 自动化 - Selenium(Java)环境搭建
Selenium Web 自动化 - Selenium(Java)环境搭建 2016-07-29 1 下载JDK JDK下载地址:http://www.oracle.com/technetwork/j ...
- Selenium Web 自动化 - 如何找到元素
Selenium Web 自动化 - 如何找到元素 2016-07-29 1. 什么是元素? 元素:http://www.w3school.com.cn/html/html_elements.asp ...
- Selenium Web 自动化 - Selenium常用API
Selenium Web 自动化 - Selenium常用API 2016-08-01 目录 1 对浏览器操作 1.1 用webdriver打开一个浏览器 1.2 最大化浏览器&关闭浏览器 ...
- Selenium Web 自动化 - 项目实战环境准备
Selenium Web 自动化 - 项目实战环境准备 2016-08-29 目录 1 部署TestNG 1.1 安装TestNG 1.2 添加TestNG类库2 部署Maven 2.1 mav ...
- Selenium Web 自动化 - 项目实战(一)
Selenium Web 自动化 - 测试框架(一) 2016-08-05 目录 1 框架结构雏形2 把Java项目转变成Maven项目3 加入TestNG配置文件4 Eclipse编码修改5 编写代 ...
随机推荐
- UCMap移动GIS & 时空地图GIS
UCMapViewer是基于UCMap(OpenGL版)的通用地图开发框架,涵盖了各类GIS数据的展示.查询.编辑.分析等各项功能 (http://www.creable.cn/kuibu/xiaza ...
- 20155231 2016-2017-2 《Java程序设计》第9周学习总结
20155231 2016-2017-2 <Java程序设计>第9周学习总结 教材学习内容总结 第十六章:整合数据库 Metadata即"诠读数据的数据",数据库是用来 ...
- Hdu1969 Pie 2017-01-17 13:12 33人阅读 评论(0) 收藏
Pie Time Limit : 5000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submissio ...
- PAT 甲 1005. Spell It Right (20) 2016-09-09 22:53 42人阅读 评论(0) 收藏
1005. Spell It Right (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Given ...
- ajax如何向后台传递数组,在后台该如何接收的问题(项目积累)
一.后台如何接收从前台接收的数组: 使用request.getParameterValues(String xxx); <input type="text" name=&qu ...
- 发个招聘贴,魔都求手游C++后端,UNITY前端,开发实习生
上海游旺网络科技有限公司成立于2015年5月,是一家极具潜力的新创移动游戏公司.公司初创团队均来自腾讯,盛大,畅游,墨麟,蜗牛等知名互联网公司,公司创始人团队参与制作过<鬼吹灯><Q ...
- delphi中如何控制listview的每行的颜色
我们可以设定一个字段的值,用以判断用什么颜色显示listview的颜色,例子如下 procedure TMainForm.ListView2CustomDrawItem(Sender: TCustom ...
- python跳坑---生成器
贵有恒,何必三更眠五更起,最无益,只怕一日曝十日寒. 好多东西要写下来一是方便自己,二可以分享给大家,我却一拖再拖. 工作的时候看别人代码中间结果,跳了个坑,关于python generator类型: ...
- Android Studio 集成 TFS,实现安卓移动开发的持续集成和交付(DevOps)
目录 1 集成TFS系统.... 1.1 概述.... 1.2 安装TFS插件.... 1.2.1 在线安装方式.... 1.2.2 离线安装方案.... 1.3 常见操作.... 1.3.1 新建G ...
- 关于Java_Web连接Oracle数据库
1.前提条件 1>装有Oracle数据库(因为连接的时候需要开启两项服务) 2>myeclipse或eclipse(支持WebProject的版本)开发环境,本机以myeclipse为例, ...