硒
Selenium是一个免费(开源)自动化测试套件,适用于跨不同浏览器和平台的Web应用程序。主要是出于测试目的,它用于使Web应用程序自动化,但当然不仅限于此。Selenium得到所有已经(或正在采取)使Selenium成为其浏览器本地组成部分的主要浏览器供应商的支持。它也是无数其他浏览器自动化工具,API和框架中的核心技术。
Selenium不仅是一个工具,而且是一组不同的软件工具,每个工具都有不同的方法来支持组织的测试自动化。从更广泛的角度来看,它以前具有四个组成部分,如下所示:
- Selenium综合开发环境(IDE)
- Selenium遥控器(RC)
- 网络驱动器
- Selenium网格
一年前, Selenium RC 和 WebDriver 合并到一个框架中,形成了 Selenium2.x 。也许, Selenium1 指的是Selenium RC 。当前发布的版本是 Selenium3.x 。
网络驱动器
Selenium-RC对于每种受支持的浏览器都以相同的方式工作。它 注入 的Javascript
功能到浏览器中时,浏览器加载然后使用它的Javascript来驱动 AUT 在浏览器内。Selenium
WebDriver的角色与Selenium-
RC相同,并已合并了原始的 1.x 绑定并包括了 WebDriver API 。它既指语言绑定,也指单个浏览器控制代码的实现。通常将其称为
WebDriver 。简而言之,WebDriver是启用自省和控制用户代理的远程控制界面。WebDriver提供了平台和语言无关的有线协议,作为进程外程序远程指示Web浏览器行为的一种方式。
WebDriver的亮点
- WebDriver在一个更简单,更简洁的编程界面中进行设计,同时解决了Selenium-RC API中的一些限制。
- 与Selenium1.0相比,WebDriver是紧凑的面向对象的API
- 它可以更有效地驱动浏览器,并克服了Selenium 1.x的局限性,后者影响了我们的功能测试范围,例如文件上传或下载,弹出窗口和对话框障碍
- WebDriver克服了Selenium RC的“ 单主机”起源策略的限制。
当前实施
WebDriver是应该使用Java/C#/Ruby/Python/NodeJS编写测试的关键接口的名称,可以使用的实现类如下所示:
- ChromeDriver
- EventFiringWebDriver
- 火狐浏览器
- HtmlUnitDriver
- InternetExplorerDriver
- PhantomJSDriver
- RemoteWebDriver
- SafariDriver



