一. Selenium介绍
1. 什么是Selenium
是web自动化测试工具集,主要包括:IDE、Grid、RC(Selenium1.0)、WebDriver(Selenium2.0)
与其他工具的不同:
- 一般的脚本测试工具录制脚本,实际上都是通过拦截浏览器收发的http请求来实现的。事实上并没有办法录制用户对html页面的操作。 当然,对那些执行压力测试的工具来说,这类模拟已经足够。
- Selenium的脚本录制工具是通过监听用户对html页面的操作来录制脚本的。Selenium是真正能够监听用户对html页面的操作的录制工具。结构:
(1)Selenium1.0

a) Selenium IDE
- 是嵌入到 Firefox 浏览器中的一个插件,实现简单的浏览器操作的录制与回放功能。
- 在什么情况下用:快速的创建Bug重现脚本
b) Selenium Grid
- 用来对测试脚步做分布式处理。现在已经集成到selenium server 中了。
- 利用Grid,可以很方便地同时在多台机器上和异构环境中并行运行多个测试用例
- 其特点为:并行执行、通过一个主机统一控制用例在不同环境、不同浏览器下运行、灵活添加变动测试机
c) Selenium RC
- selenium RC 是 selenium 家族的核心工具,selenium RC 支持多种不同的语言编写自动化测试脚本,通过 selenium RC 的服务器作为代理服务器去访问应用从而达到测试的目的。
- selenium RC 使用分 Client Libraries 和 selenium Server。
- Client Libraries 库主要主要用于编写测试脚本,用来控制 selenium Server 的库。
- Selenium Server 负责控制浏览器行为,总的来说,Selenium Server 主要包括 3 个部分:Launcher、Http Proxy、Core。其中 Selenium Core 是被 Selenium Server 嵌入到浏览器页面中的。其实 Selenium Core就是一堆 JS 函数的集合,就是通过这些 JS 函数,我们才可以实现用程序对浏览器进行操作。Launcher 用于启动浏览器,把 selnium Core 加载到浏览器页面当中,并把浏览器的代理设置为 Selenium Server 的Http Proxy。
(2)Selenium2.0
selenium 2.0 = selenium 1.0 + WebDriver
其中:WebDriver & Selenium RC:
RC与WebDriver可以看成一套规范,在这套规范里面定义客户端与浏览器交互的协议,以及元素定位与操作的接口
- Selenium RC:在浏览器中运行JavaScript应用,使用浏览器内置的JavaScript翻译器来翻译和执行selenese 命令(selenese 是 selenium 命令集合) 。
- WebDriver:通过原生浏览器支持或浏览器扩展直接控制浏览器,WebDriver针对各个浏览器而开发,取代了被嵌入到被测Web应用中的JavaScript。与浏览器的紧密集成支持创建更高级的测试,避免了JavaScript 安全模型导致的限制。除了来自浏览器厂商的支持,WebDriver 还利用操作系统级的调用模拟用户输入
2. WebDriver原理
总体而言,WebDriver是一层基础的协议规范,定义了:客户端与浏览器交互的协议,以及元素定位与操作的接口(WebDriver API)。
WebDriver API:提供了Web页面操作的相关规范,比如:比如元素定位方法,浏览器操作、获取web页元素属性等
具体操作详情:
1) WebDriver启动目标浏览器,并绑定到指定端口。该启动的浏览器实例,作为WebDriver的remote server
2) Client端通过CommandExcuter发送HTTPRequest给remote server的侦听端口(通信协议:the webdriver wire protocol)
3) Remote server需要依赖原生的浏览器组件(如:IEDriverServer.ex)来转化浏览器的native调用
3. WebDriver如何组织和执行用例
WebDriver不能够组织和执行用例。它仅仅是一套规范协议,所以我们需要依赖单元测试框架,将写好这些操作页面元素的方法(用例)组织起来执行并输入测试结果。
单元测试框架:java的Junit、testNG,python的unittest
4. 学习路线
1) 熟悉WebDriverAPI:
API就是selenium 所定义一方法,用于定位,操作页面上的各种元素。
- 先学习元素的定位,selenium 提供了id、name、class name、 tag name、link text、partial link text、 xpath、css、等定位方法。xpath和css 功能强大语法稍微复杂,在这其间你可能还需要了解更多的前端知识。xml, javascript 等。
- 定位元素的目的是为了操作元素,接着就要学习各种元素有操作,输入框,下拉框,按钮点击,文件上传、下载,分页,对话框,警告框...等等。
2) 学习并使用单元测试框架,
单元测试框架本身就解决了用例的组织与运行。
3)学习POM设计模式
一. Selenium介绍的更多相关文章
- Python 爬虫利器 Selenium 介绍
Python 爬虫利器 Selenium 介绍 转 https://mp.weixin.qq.com/s/YJGjZkUejEos_yJ1ukp5kw 前面几节,我们学习了用 requests 构造页 ...
- selenium===介绍
selenium 是支持java.python.ruby.php.C#.JavaScript . 从语言易学性来讲,首选ruby ,python 从语言应用广度来讲,首选java.C#.php. 从语 ...
- selenium介绍和环境搭建
一.简单介绍 1.selenium:Selenium是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE.Mozilla Fire ...
- java selenium (一) selenium 介绍
Selenium 是目前用的最广泛的Web UI 自动化测试框架. 本系列文章,将深入简出来讲解selenium 的用法 文章的末尾处, 有整个系列的链接 阅读目录 selenium 的命名 sele ...
- selenium 介绍1
本文主要是吸收这些帖子的营养,多谢互联网,和未知名作者. http://www.ltesting.net/ceshi/open/kygncsgj/selenium/2011/1009/203318.h ...
- Selenium介绍
基于selenium的自动化测试,华为已经做了两代了,目前是做到SmartGUI2.0,基于他们自己的AutoSpace平台.不过目前支持的貌似只有IE和火狐(火狐3.6).控件录制支持ID,Name ...
- selenium介绍及环境安装
selenium简介: seelenium是web应用程序自动化工具,通过自动操作浏览器,进行点击.输入.回车.返回等来模拟用户的真实行为.如何理解和看待selenium项目,selenium官方 ...
- [爬虫] selenium介绍
认识selenium 在爬取百度文库的过程中,我们需要使用到一个工具selenium(浏览器自动测试框架),selenium是一个用于web应用程序测试的工具,它可以测试直接运行在浏览器中,就像我们平 ...
- Selenium学习之==>Selenium介绍
前世 Selenium RC 早期的Selenium使用的是JavaScript注入技术与浏览器打交道,需要Selenium RC启动一个Server,将操作Web元素的API调用转化为一段段Java ...
随机推荐
- Sequence contains no elements : LINQ error
1.错误意思: 出现错误的原因是:你要从一个null中取的数据. 2.错误的处理 1,使用FirstOrDefault() 来代替 First() 2.使用SingleOrDefault 来代替 Si ...
- Eclipse 入手配置
工欲善其事,必先利其器 在安装eclipse后进行简单的配置能够为以后的开发提高不少效率,这里慢慢先记录自己的经验. 一.编码配置 utf-8 1.worksplace: 首先设置就是workspac ...
- 第7章 征服CSS3选择器(下)
:enabled选择器 在Web的表单中,有些表单元素有可用(":enabled")和不可用(":disabled")状态,比如输入框,密码框,复选框等.在默认 ...
- HTML5 : 文件上传下载
网站建设中,文件上传与下载在所难免,HTML5中提供的API在前端有着丰富的应用,完美的解决了各个浏览器的兼容性问题,所以赶紧get吧! FileList 对象和 file 对象 HTML 中的 in ...
- easyui grid 增加合计行
一.首先,easyui grid 的 showfooter 属性设置为 true $aplgrid.datagrid({ data: globalExpenseClaimForm.ExpenseCl ...
- Python爬虫教程-31-创建 Scrapy 爬虫框架项目
本篇是介绍在 Anaconda 环境下,创建 Scrapy 爬虫框架项目的步骤,且介绍比较详细 Python爬虫教程-31-创建 Scrapy 爬虫框架项目 首先说一下,本篇是在 Anaconda 环 ...
- 【Python】回文palindrome——利用字符串反转
回文 palindrome Python 字符串反转string[::-1] Slice notation "[a : b : c]" means "count in i ...
- Markdown学习使用
本文记录Markdown的基础应用. 一.基础知识 Markdown 是一种标记语言 文件后缀名:.md 编辑工具:VSCode(visual studio code) VSCode中预览模式快捷键: ...
- LINQ学习笔记(一)基本语法
1.LINQ简介 LINQ是Language Integrated Query的简称,它是集成在.NET编程语言中的一种特性.包括五个部分:LINQ to Objects.LINQ to DataSe ...
- python StringIO&BytesIO
StringIO StringIO就是在内存中读写str 要把str写入StringIO,先创建一个StringIO >>> from io import StringIO>& ...