Selenium WebDriver

17 Mar 2025 | 4 分钟阅读

Selenium WebDriver 是 Selenium 工具套件中最重要的组成部分。 最新版本 "Selenium 2.0" 与 WebDriver API 集成,它提供了一个更简单、更简洁的编程接口。

下图将让您对 Selenium 组件和测试自动化工具有一个清晰的了解。


Selenium WebDriver

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 Webdriver 在 Java 和 C# 中最受欢迎。 对于本教程,我们使用 Selenium 和 java。 您可以参考下面给出的链接来学习 Java 和 C# 的基本和高级概念

Java 教程:java-tutorial

C# 教程:c-sharp-tutorial

Selenium WebDriver 的执行速度比 Selenium RC 快得多,因为它直接调用 Web 浏览器。 另一方面,RC 需要一个 RC 服务器才能与浏览器交互。

WebDriver 具有内置的 Firefox 驱动程序实现(Gecko 驱动程序)。 对于其他浏览器,您需要插入其特定于浏览器的驱动程序才能进行通信和运行测试。 最常用的 WebDriver 包括

  • Google Chrome 驱动程序
  • Internet Explorer 驱动程序
  • Opera 驱动程序
  • Safari 驱动程序
  • HTML Unit 驱动程序(一个特殊的无头驱动程序)

Selenium WebDriver - 架构

Selenium WebDriver API 提供了语言和浏览器之间的通信功能。

下图显示了 Selenium WebDriver 的架构表示。


Selenium WebDriver Architecture

WebDriver 架构有四个基本组成部分

  • Selenium 语言绑定
  • JSON Wire 协议
  • 浏览器驱动程序
  • 真实浏览器

Selenium 语言绑定 / Selenium 客户端库

Selenium 开发人员构建了语言绑定/Selenium 客户端库以支持多种语言。 例如,如果您想在 java 中使用浏览器驱动程序,请使用 java 绑定。 所有受支持的语言绑定都可以从 Selenium 的官方网站 (https://www.seleniumhq.org/download/#client-drivers) 下载。

JSON Wire 协议

JSON(JavaScript 对象表示法)是一种用于在 Web 上交换数据的开放标准。 它支持对象和数组等数据结构。 因此,从 JSON 读写数据很容易。 要了解有关 JSON 的更多信息,请访问 json-tutorial

JSON Wire 协议提供了一种传输机制,用于在服务器和客户端之间传输数据。 JSON Wire 协议是各种 REST Web 服务的行业标准。 要了解有关 Web 服务的更多信息,请访问 web-services-tutorial

浏览器驱动程序

Selenium 使用特定于每个浏览器的驱动程序,以便与浏览器建立安全连接,而不会透露浏览器功能的内部逻辑。 浏览器驱动程序也特定于用于自动化的语言,例如 Java、C# 等。

当我们使用 WebDriver 执行测试脚本时,内部会执行以下操作。

  • 为每个 Selenium 命令生成 HTTP 请求并将其发送到浏览器驱动程序。
  • 驱动程序通过 HTTP 服务器接收 HTTP 请求。
  • HTTP 服务器决定执行在浏览器上执行的指令的所有步骤。
  • 执行状态被发送回 HTTP 服务器,然后随后发送回自动化脚本。

浏览器

Selenium WebDriver 支持的浏览器

  • Internet Explorer
  • Mozilla Firefox
  • 谷歌浏览器
  • Safari

Selenium WebDriver - 功能

Selenium WebDriver 的一些最重要的功能是

  • 多浏览器支持:Selenium WebDriver 支持各种 Web 浏览器,例如 Firefox、Chrome、Internet Explorer、Opera 等。 它还支持一些非传统或罕见的浏览器,例如 HTMLUnit。

Selenium WebDriver Features
  • 多语言支持:WebDriver 还支持大多数常用的编程语言,如 Java、C#、JavaScript、PHP、Ruby、Pearl 和 Python。 因此,用户可以根据他/她的能力选择任何一种受支持的编程语言并开始构建测试脚本。
  • 速度:WebDriver 的执行速度比 Selenium Suite 的其他工具快。 与 RC 不同,它不需要任何中间服务器来与浏览器通信; 而是该工具直接与浏览器通信。

Selenium WebDriver Features
  • 简单命令:Selenium WebDriver 中使用的大多数命令都很容易实现。 例如,要在 WebDriver 中启动浏览器,请使用以下命令
    WebDriver driver = new FirefoxDriver();(Firefox 浏览器)
    WebDriver driver = new ChromeDriver();(Chrome 浏览器)
    WebDriver driver = new InternetExplorerDriver();(Internet Explorer 浏览器)
  • WebDriver - 方法和类:WebDriver 提供了多种解决方案来应对自动化测试中的一些潜在挑战。
    WebDriver 还允许测试人员通过动态查找器处理复杂的 Web 元素,例如复选框、下拉列表和警报。

Selenium WebDriver Features

Selenium WebDriver 教程索引