在前两篇文章中,主要介绍了Selenium IDE 工具及其使用和它的特点,也使用Selenium IDE和Firebug构建了一些脚本。本文,我们开始介绍不同类型的web元素及其定位策略

我们已经非常熟悉Selenium IDE的使用了,接下来我们学习如何使用Selenium WebDriver创建更高级的自动化脚本。WebDriver是最引人注目的自动化测试工具之一。

 Selenium WebDriver 介绍

 WebDriver架构

 Selenium WebDriver的特性

 浏览器兼容性

 支持的语言

 速度

 驱动程序、方法和类

 结论

一. Selenium WebDriver 介绍

WebDriver是Selenium工具包中最强大和最流行的工具之一。WebDriver是Selenium RC的一个扩展版本,具有很多优点,解决了RC的许多问题。WebDriver将其支持扩展到许多最新的浏览器和平台。同时,WebDriver也不需要在执行测试脚本之前启动Selenium服务器

Selenium RC和WebDriver API 组合在一起被称为Selenium 2.0,Selenium开发的目的就是为了支持动态的web 页面和Ajax 调用,它还支持各种驱动程序进行基于web的移动测试。

二. WebDriver架构

WebDriver与Selenium RC 有点细微区别,它是在每种浏览器生成的独立客户端基础之上运行的,不需要JavaScript额外的工作

WebDriver直接调用Web浏览器,测试脚本也是这样执行。WebDriver使用浏览器的支持和功能来实现自动化。

与Selenium RC不同,Selenium WebDriver本质上不需要在启动测试脚本执行之前启动Selenium服务器,如果用户希望在浏览器所在的同一台机器上执行测试,那么他/她可以利用这个优势,也可以不需要Selenium服务器。

WebDriver 在下面三种情况时需要用到Selenium Server

• 当用户希望在远程计算机上执行测试脚本时。

• 当用户希望在HtmlUnit Driver上执行测试脚本时。

• 当用户希望在多个平台上执行测试脚本时。

WebDriver是一个纯粹的面向对象的框架,作用于OS层。它利用浏览器与自动化的本机兼容性,而无需使用其他硬件设备。随着需求的增加,它已经获得了广泛的用户群,并且已成为迄今为止最广泛使用的开源自动化测试工具之一。

三. Selenium WebDriver的特性

浏览器兼容性

与Selenium RC和Selenium IDE不同的是,WebDriver支持各种Web浏览器及其版本,支持所有传统浏览器以及一些特殊的浏览器,如HlenUnit浏览器。

HtmlUnit Browser除了在GUI模式下运行,用户无法查看测试脚本的执行情况外,测试执行的测试脚本与其他浏览器类似,它的执行速度像滚雪球一样快。

WebDriver还支持基于Web的移动测试。它提供AndroidDriver和IphoneDriver来支持基于Web的移动测试

注意:WebDriver不支持新浏览器。

四. 支持的语言

在前面的文章中,我们学会了使用记录和回放功能创建脚本,但是在创建此类测试脚本的过程中,会遇到各种问题。

Selenium IDE强加限制:

• 不支持迭代和条件语句

• 不支持循环

• 不支持错误处理

• 不支持测试脚本依赖

上面的问题可以通过编程解决,WebDriver方便用户选择不同的编程语言,并使用选定的语言进行脚本编写

Selenium WebDriver支持的编程语言:

  1. Java
  2. C#
  3. PHP
  4. Pearl
  5. Ruby
  6. Python

用户可以根据自己能力选择任何一种编程语言开始构建测试脚本。

五. 速度

与Selenium套件的其他工具相比,WebDriver是速度最快的工具。不通过任何外部设备通信,而是直接与浏览器通信。

Selenium套件中的其他工具(如Selenium RC)不直接与Web浏览器通信。客户端(测试脚本以任何编程语言编写)与Selenium远程控制服务器通信,远程控制与Selenium Core(JavaScript程序)通信,后者又与Web浏览器通信。因此,这种复杂的通信阻碍了通信的速度。

六. 驱动程序、方法和类

WebDriver为自动化测试中的一些问题提供了广泛的解决方案。帮助我们在动态加载过程中处理复杂的Web类型元素,如复选框,下拉列表和提示信息等

随着移动时代的到来,WebDriver API也已经成熟,并引入了一些关键技术。WebDriver使用户能够执行基于Web的移动测试,并提供了两个基本驱动程序

• AndriodDriver

• IphoneDriver

WebDriver API相当简单易用,它不包括重复命令。相反,Selenium RC中有许多重复的命令

七. 结论

在本文中,通过概述体系结构,功能和限制,尝试让您熟悉Selenium WebDriver

本文的重点:

• Selenium套件由4个基本组件组成; Selenium IDE,Selenium RC,WebDriver,Selenium Grid。

• WebDriver是基于Web的自动化测试。WebDriver与Selenium RC相比具有很多优势。

• WebDriver支持多种Web浏览器,编程语言和测试环境。

• WebDriver直接与Web浏览器通信,并利用本机兼容性进行自动化。

• WebDriver的支持不仅突破传统用户操作的瓶颈。相反,它支持复杂用户操作的有效处理机制,如处理下拉列表,Ajax调用,窗口之间的切换,导航,处理警报等。

• WebDriver使用户能够执行基于Web的移动测试。WebDriver引入了AndroidDriver和IphoneDriver。

• WebDriver比Selenium Suite的其他工具更快,它可以直接调用浏览器而不要任何额外的干预

Selenium Webdriver 介绍的更多相关文章

  1. selenium webdriver自动化测试

    selenium家族介绍           Selenium IDE:Selenium IDE是嵌入到Firefox浏览器中的一个插件,实现简单的浏览器操作的录制与回放功能.   Selenium ...

  2. Selenium WebDriver中一些鼠标和键盘事件的使用

    转自:http://www.ithov.com/linux/133271.shtml 在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击 ...

  3. selenium webdriver (python) 第一版PDF

    前言 如果你是一位有python语言基础的同学,又想通过python+ selenium去实施自动化,那么你非常幸运的找到了这份文档,我也非常荣幸能为你的自动化学习之路带来一丝帮助. 其实,我在sel ...

  4. Selenium Webdriver元素定位的八种常用方式

    楼主原创,欢迎学习和交流,码字不容易,转载请注明出处,谢谢. 在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素 ...

  5. Selenium WebDriver + Python 环境配置

    1.   下载必要工具及安装包 1.1.[Python开发环境] 下载并安装Python 2.7.x版本(当前支持2.x版本,不要下载最新的3.X的版本因为python3并非完全兼容python2) ...

  6. Selenium WebDriver 中鼠标和键盘事件分析及扩展(转)

    本文将总结 Selenium WebDriver 中的一些鼠标和键盘事件的使用,以及组合键的使用,并且将介绍 WebDriver 中没有实现的键盘事件(Keys 枚举中没有列举的按键)的扩展.举例说明 ...

  7. 转载 基于Selenium WebDriver的Web应用自动化测试

    转载原地址:  https://www.ibm.com/developerworks/cn/web/1306_chenlei_webdriver/ 对于 Web 应用,软件测试人员在日常的测试工作中, ...

  8. Selenium WebDriver + Grid2 + RSpec之旅(四) ----通过RSpec编写测试用例

    Selenium WebDriver + Grid2 + RSpec之旅(四) ----通过RSpec编写测试用例 自动化测试和手工测试一样,是要有测试用例,有检查点和测试结果的,接下来我们通过RSp ...

  9. Selenium WebDriver + Grid2 + RSpec之旅(六) ----多浏览器的并行执行

    Selenium WebDriver + Grid2 + RSpec之旅(六) ----多浏览器的并行执行 由于浏览器的发展,浏览器种类繁多.为了保证系统能在各种浏览器上叱咤风云,减少测试人员的测试工 ...

  10. selenium webdriver(6)---cookie相关操作

    介绍selenium操作cookie之前,先简单介绍一下cookie的基础知识 cookie cookie一般用来识别用户身份和记录用户状态,存储在客户端电脑上.IE的cookie文件路径(win7) ...

随机推荐

  1. 【网络安全】Shell 脚本学习

    声明:学习视频来自 b 站 up 主 泷羽 sec,如涉及侵权马上删除文章 声明:本文主要用作技术分享,所有内容仅供参考.任何使用或依赖于本文信息所造成的法律后果均与本人无关.请读者自行判断风险,并遵 ...

  2. Qt编写ffmpeg本地摄像头显示(16路本地摄像头占用3.2%CPU)

    一.前言 内核ffmpeg除了支持本地文件.网络文件.各种视频流播放以外,还支持打开本地摄像头,和正常的解析流程一致,唯一的区别就是在avformat_open_input第三个参数传入个AVInpu ...

  3. Pytorch Utils 总结

    Utils 从torch.nn.utils模块 clip_grad_norm_ 裁剪参数迭代的梯度范数. clip_grad_value_ 在指定值处剪辑可迭代参数的梯度. parameters_to ...

  4. [LC735]行星碰撞

    题目描述 给定一个整数数组 asteroids,表示在同一行的行星.对于数组中的每一个元素,其绝对值表示行星的大小,正负表示行星的移动方向(正表示向右移动,负表示向左移动).每一颗行星以相同的速度移动 ...

  5. Docker 迁移数据目录

    Centos7 环境,采用yum安装的,默认数据目录在/var/lib/docker中 1. 关闭docker服务 systemctl stop docker 2. 备份和迁移 # 迁移 cp -r ...

  6. SpringBoot(二) - 核心配置文件 (+ 邮件发送 和 短信发送)

    1.application.properties 和 application.yml 配置文件格式区别 1.1 文件格式 application.properties # 端口号 server.por ...

  7. nginx平台初探-2

    handler模块简介 相信大家在看了前一章的模块概述以后,都对nginx的模块有了一个基本的认识.基本上作为第三方开发者最可能开发的就是三种类型的模块,即handler,filter和load-ba ...

  8. VM1038:1 (in promise) MiniProgramError {"errMsg":"navigateTo:fail webview count limit exceed"} Object解决办法

    在跳转的时候,出现这,有的时候回出现,有的时候不会出现: VM1038:1 (in promise) MiniProgramError {"errMsg":"naviga ...

  9. 开源数据库生态遇新变数,天翼云TeleDB提供企业数据管理更优解!

    近日,知名开源大规模并行处理 (MPP) 数据库Greenplum的源代码在其官方GitHub页面突然消失,引发了用户和开发者的广泛关注, PostgreSQL生态系统或将产生新变数.开源软件在面对商 ...

  10. 用virtual-manager安装虚拟机

    使用virt-manager基本使用 启用机管理主窗口 硬件细节窗口 配置虚拟机启动选项 附加USB设备给虚拟机准备工作 USB重定向 虚拟机图形控制台 添加远程连接 显示虚拟机细节 性能监视 实验准 ...