Selenium WebDriver简介
Selenium WebDriver简介
是Selenium工具箱中功能最强大且最受欢迎的工具之一。WebDriver是Selenium RC的扩展版本,具有许多优点,并解决了其许多限制。与Selenium IDE不同,WebDriver将其支持扩展到许多最新的浏览器和平台。与Selenium RC不同,WebDriver也不要求在执行测试脚本之前先启动Selenium服务器。
与WebDriver API聚合在一起的Selenium RC被称为Selenium 2.0。开发Selenium是为了支持动态网页和Ajax调用。它还支持各种驱动程序,以进行基于Web的移动测试。
WebDriver架构
WebDriver是基于Web的测试工具,与Selenium RC有细微的差别。由于该工具建立在为每个Web浏览器创建一个隔离客户端的基础上;正如我们在第一篇教程中所讨论的那样,不需要繁重的JavaScript工作。
WebDriver直接调用Web浏览器,并以这种方式执行整个测试脚本。WebDriver使用浏览器的支持和功能来实现自动化.与Selenium RC不同,
Selenium WebDriver基本上不需要在启动测试脚本执行之前启动Selenium Server。如果用户希望在浏览器所在的同一台计算机上执行测试,则用户可以利用该好处,并且可以(也可以不需要)Selenium Server。
WebDriver需要Selenium Server的特殊情况:
- 当用户希望在远程计算机上执行测试脚本时。
- 当用户希望在HtmlUnit驱动程序上执行测试脚本时。
- 当用户希望在多个平台上执行测试脚本时。
WebDriver是在OS层上工作的纯面向对象的框架。它利用浏览器的本机兼容性实现自动化,而无需使用任何外围实体。随着需求的增长,它已经获得了广泛的欢迎和用户基础,并且已经成为迄今为止使用最广泛的开源自动化测试工具之一。
Selenium WebDriver的功能
浏览器兼容性
WebDriver支持各种Web浏览器及其版本。除了与Selenium RC和Selenium IDE不同的某些独特且罕见的浏览器(例如HtmlUnit浏览器)外,它还支持所有常规浏览器。
HtmlUnit浏览器执行测试脚本的方式与其他浏览器类似,不同之处在于它以无头模式(即无GUI模式)运行,并且用户将无法查看测试脚本的执行情况。表示测试脚本的执行在无头模式下发生,因此执行速度滚动并加快了执行速度。
WebDriver还支持基于Web的移动测试。因此,它提供了AndroidDriver和IphoneDriver来支持基于Web的移动测试。
注意:WebDriver并不容易支持新的浏览器。
语言支持
Selenium IDE施加的一些限制是:
- 不支持迭代和条件语句
- 不支持循环
- 不支持错误处理
- 不支持测试脚本依赖
上述障碍可以通过编程来解决。WebDriver方便用户在不同的编程语言中进行选择,并以指定的语言构建测试脚本。
Selenium WebDriver支持的编程语言是:
- Java
- C#
- PHP
- Pearl
- Ruby
- Python
因此,用户可以根据自己的能力选择任何一种编程语言(只要WebDriver支持该语言),就可以开始构建测试脚本。
速度
与Selenium套件的其他工具相比,WebDriver被证明是所有工具中最快的工具。通讯不会通过任何外部干预进行引导;而是该工具与任何用户一样直接与浏览器通信。因此,WebDriver利用浏览器的本机兼容性实现自动化。
Selenium套件中的其他工具(例如Selenium RC)不会直接与Web浏览器通信。客户端库(测试脚本以任何编程语言编写)都与Selenium Remote Control服务器通信,而Remote Control与Selenium Core(JavaScript程序)通信,后者又与Web浏览器通信。因此,这种扭曲的通信成为执行速度的障碍。
驱动程序,方法和类
WebDriver为自动化测试中的一些潜在挑战提供了广泛的解决方案。它可以帮助我们在动态查找器的帮助下处理复杂类型的Web元素,例如复选框,下拉列表和警报。
随着移动时代的到来,WebDriver API也已经成熟并引入了一些关键技术以进入这一领域。WebDriver使用户可以执行基于Web的移动测试。它提供了两个基本驱动程序来执行基于Web的移动测试。
- AndriodDriver
- Iphone驱动程序
而且,WebDriver API非常简单。它不包含重复的命令。相反,Selenium RC体现了许多重言式命令。