本文概述
Selenium WebDriver是Selenium工具套件中最重要的组件。最新版本” Selenium 2.0″已与WebDriver API集成在一起, 从而提供了更简单, 更简洁的编程界面。
下图将使你对Selenium组件和测试自动化工具有一个清晰的了解。
Selenium WebDriver最初作为Selenium v2.0的一部分引入。 Selenium的初始版本, 即Selenium v1, 仅由IDE, RC和Grid组成。但是, 随着Selenium v3的发布, 不建议使用RC, 而将其迁移到旧版软件包中。
在WebDriver中, 可以使用任何受支持的编程语言来开发测试脚本, 并且可以在大多数现代Web浏览器中直接运行它们。 WebDriver支持的语言包括C#, Java, Perl, PHP, Python和Ruby。
在学习Selenium WebDriver的概念之前, 你应该熟悉任何一种受支持的编程语言。当前, Selenium Web驱动程序在Java和C#中最受欢迎。在本教程中, 我们将Selenium与Java结合使用。你可以参考下面给出的链接, 以学习Java和C#的基本知识和高级概念:
Java教程:https://www.srcmini02.com/java-tutorial
C#教程:https://www.srcmini02.com/c-sharp-tutorial
与Selenium RC相比, Selenium WebDriver的执行速度要快得多, 因为它可以直接调用Web浏览器。另一方面, RC需要RC服务器与浏览器进行交互。
WebDriver具有Firefox驱动程序(Gecko驱动程序)的内置实现。对于其他浏览器, 你需要插入其浏览器特定的驱动程序以进行通信并运行测试。最常用的WebDriver包括:
- Google Chrome浏览器驱动程序
- Internet Explorer驱动程序
- 歌剧驱动程序
- Safari驱动程序
- HTML单元驱动程序(特殊的无头驱动程序)
Selenium WebDriver-体系结构
Selenium WebDriver API提供了语言和浏览器之间的通信工具。
下图显示了Selenium WebDriver的体系结构表示。
WebDriver体系结构有四个基本组件:
- Selenium语言绑定
- JSON Wire通讯协定
- 浏览器驱动程序
- 真正的浏览器
Selenium语言绑定/ Selenium客户库
Selenium开发人员已构建语言绑定/ Selenium Client Libraries, 以支持多种语言。例如, 如果要在Java中使用浏览器驱动程序, 请使用Java绑定。可以从Selenium的官方网站(https://www.seleniumhq.org/download/#client-drivers)下载所有受支持的语言绑定。
JSON Wire通讯协定
JSON(JavaScript对象表示法)是用于在网络上交换数据的开放标准。它支持对象和数组之类的数据结构。因此, 很容易从JSON写入和读取数据。要了解有关JSON的更多信息, 请访问https://www.srcmini02.com/json-tutorial
JSON Wire Protocol提供了一种传输机制, 可以在服务器和客户端之间传输数据。 JSON Wire Protocol充当各种REST Web服务的行业标准。要了解有关Web服务的更多信息, 请访问https://www.srcmini02.com/web-services-tutorial
浏览器驱动程序
Selenium使用特定于每个浏览器的驱动程序, 以便与浏览器建立安全连接, 而不会透露浏览器功能的内部逻辑。浏览器驱动程序还特定于用于自动化的语言, 例如Java, C#等。
当我们使用WebDriver执行测试脚本时, 将在内部执行以下操作。
- 对于每个Selenium命令, 都会生成HTTP请求并将其发送到浏览器驱动程序。
- 驱动程序通过HTTP服务器接收HTTP请求。
- HTTP Server决定所有步骤以执行在浏览器上执行的指令。
- 执行状态发送回HTTP Server, 随后又发送回自动化脚本。
浏览器
Selenium WebDriver支持的浏览器:
- IE浏览器
- 火狐浏览器
- 谷歌浏览器
- 苹果浏览器
Selenium WebDriver-功能
Selenium WebDriver的一些最重要的功能是:
- 多种浏览器支持:Selenium WebDriver支持多种网络浏览器, 例如Firefox, Chrome, Internet Explorer, Opera等。它还支持某些非常规或罕见的浏览器, 例如HTMLUnit。
- 多种语言支持:WebDriver还支持大多数常用的编程语言, 例如Java, C#, JavaScript, PHP, Ruby, Pearl和Python。因此, 用户可以根据自己的能力选择一种受支持的编程语言, 然后开始构建测试脚本。
- 速度:与Selenium Suite的其他工具相比, WebDriver的执行速度更快。与RC不同, 它不需要任何中间服务器即可与浏览器进行通信。而是该工具直接与浏览器通信。
- 简单命令:Selenium WebDriver中使用的大多数命令都易于实现。例如, 要在WebDriver中启动浏览器, 可以使用以下命令:
WebDriver驱动程序=新的FirefoxDriver(); (Firefox浏览器)
WebDriver驱动程序=新的ChromeDriver(); (Chrome浏览器)
WebDriver驱动程序=新的InternetExplorerDriver(); (Internet Explorer浏览器) - WebDriver-方法和类:WebDriver提供了多种解决方案来应对自动化测试中的一些潜在挑战。
WebDriver还允许测试人员通过动态查找器处理复杂类型的Web元素, 例如复选框, 下拉列表和警报。
Selenium WebDriver教程索引
Selenium WebDriver教程
- Selenium WebDriver教程
- WebDriver与RC
- WebDriver安装
- WebDriver第一个测试用例
- WebDriver命令
- 在Chrome上运行测试
- 在Firefox上运行测试
- 在IE上执行测试
- 在Safari上运行测试
- 定位策略
- 按ID定位策略
- 按名称查找策略
- 按类别名称查找策略
- 按标签名称查找策略
- 通过链接文本查找策略
- 通过部分链接文本查找策略
- 通过CSS定位策略
- 通过XPath定位策略
- 处理下拉菜单
- WebDriver拖放
- WebDriver处理警报
- 滚动网页
- WebDriver-浏览器命令
- WebDriver-导航命令
- WebDriver-WebElement命令
- 处理单选按钮
- 处理复选框
- Selenium断言
- Selenium网格