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介绍的更多相关文章

  1. Python 爬虫利器 Selenium 介绍

    Python 爬虫利器 Selenium 介绍 转 https://mp.weixin.qq.com/s/YJGjZkUejEos_yJ1ukp5kw 前面几节,我们学习了用 requests 构造页 ...

  2. selenium===介绍

    selenium 是支持java.python.ruby.php.C#.JavaScript . 从语言易学性来讲,首选ruby ,python 从语言应用广度来讲,首选java.C#.php. 从语 ...

  3. selenium介绍和环境搭建

    一.简单介绍 1.selenium:Selenium是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE.Mozilla Fire ...

  4. java selenium (一) selenium 介绍

    Selenium 是目前用的最广泛的Web UI 自动化测试框架. 本系列文章,将深入简出来讲解selenium 的用法 文章的末尾处, 有整个系列的链接 阅读目录 selenium 的命名 sele ...

  5. selenium 介绍1

    本文主要是吸收这些帖子的营养,多谢互联网,和未知名作者. http://www.ltesting.net/ceshi/open/kygncsgj/selenium/2011/1009/203318.h ...

  6. Selenium介绍

    基于selenium的自动化测试,华为已经做了两代了,目前是做到SmartGUI2.0,基于他们自己的AutoSpace平台.不过目前支持的貌似只有IE和火狐(火狐3.6).控件录制支持ID,Name ...

  7. selenium介绍及环境安装

      selenium简介: seelenium是web应用程序自动化工具,通过自动操作浏览器,进行点击.输入.回车.返回等来模拟用户的真实行为.如何理解和看待selenium项目,selenium官方 ...

  8. [爬虫] selenium介绍

    认识selenium 在爬取百度文库的过程中,我们需要使用到一个工具selenium(浏览器自动测试框架),selenium是一个用于web应用程序测试的工具,它可以测试直接运行在浏览器中,就像我们平 ...

  9. Selenium学习之==>Selenium介绍

    前世 Selenium RC 早期的Selenium使用的是JavaScript注入技术与浏览器打交道,需要Selenium RC启动一个Server,将操作Web元素的API调用转化为一段段Java ...

随机推荐

  1. zookeeper【6】负载均衡

    负载均衡是一种手段,用来把对某种资源的访问分摊给不同的设备,从而减轻单点的压力. 架构图 图中左侧为ZooKeeper集群,右侧上方为工作服务器,下面为客户端.每台工作服务器在启动时都会去zookee ...

  2. java.lang.UnsupportedClassVersionError: action/Login : Unsupported major.minor version 52.0 (unable to load class action.Login)异常

    用myeclipse新建一个web项目,用了struts2框架,tomcat启动的时候报了这个错误. 我的问题原因是tomcat7的运行环境不知道为什么设置成了myeclipse1.7的jre,我给它 ...

  3. Effective C++ .15,16获取原始资源和成对使用同类型new和delete

    15. 智能指针可以通过get操作 #include <iostream> #include <cstdlib> #include <memory> using n ...

  4. css3特别篇图解FlexBox

    图文转自微博网友勾三股四 一.flex-direction 二.flex-wrap 三.justify-content 四.align-items 五.align-content

  5. JS判断数字类型

    JavaScript判断输入是否为数字类型的方法总结 前言 很多时候需要判断一个输入是否位数字,下面简单列举集中方法. 第一种方法 isNaN isNaN 返回一个 Boolean 值,指明提供的值是 ...

  6. java.util.concurrent.CountDownLatch 使用

    1. 概述 CountDownLatch是java的一个并发工具(java.util.concurrent.CountDownLatch), 闭锁. 主要功能是阻塞调用其await()方法的线程,直到 ...

  7. bzoj2119 [ZJOI2010]base基站选址

    传送门 n年前的考试题,今天才填上…… 听说你们会决策单调性+主席树?然而我多年不写决策单调性,懒得写了……于是就写了一发线段树. 其实线段树应该不难想,毕竟转移是分层转移,并且这个题的转移函数可以快 ...

  8. vue-cli脚手架项目实例

    看完了配置,接下来通过一个实例,更清晰地了解这些文件之间的联系,顺带练习练习vue相关知识. 1.安装 打开命令行控制器,系统自带cmd或者git bash等都可以,按照顺序输入如下指令,耐心等待每一 ...

  9. 在WinServer上安装小红伞杀毒软件的经验总结

    作者:朱金灿 来源:http://blog.csdn.net/clever101 在WinServer2008或WinServer2012不能直接安装小红伞杀毒软件的免费版,需要安装服务器版.我手头并 ...

  10. SpringBoot2.0+Mybatis+PageHelper+Redis实现缓存

    1.在maven引入相关的依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactI ...