Selenium网络驱动程序


Selenium网络驱动程序

Selenium WebDriver 是 Selenium Tool 套件中最重要的组件。最新发布的“Selenium 2.0”集成了WebDriver API,提供了更简单、更简洁的编程接口。

下图将使您对 Selenium 组件和测试自动化工具有一个全面的了解。

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# 的基本和高级概念:

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

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

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

Selenium WebDriver-架构

Selenium WebDriver API 提供语言和浏览器之间的通信设施。

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

Selenium WebDriver 架构

WebDriver 架构有四个基本组件:

  • Selenium 语言绑定
  • JSON 有线协议
  • 浏览器驱动程序
  • 真正的浏览器

Selenium 语言绑定/Selenium 客户端库

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

JSON 有线协议

JSON(JavaScript Object Notation)是一种用于在网络上交换数据的开放标准。它支持对象和数组等数据结构。因此,很容易从 JSON 写入和读取数据。

JSON Wire Protocol 提供了一种传输机制来在服务器和客户端之间传输数据。JSON Wire Protocol 作为各种 REST Web 服务的行业标准。

浏览器驱动程序

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

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

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

浏览器

Selenium WebDriver 支持的浏览器:

  • Internet Explorer
  • Mozilla Firefox
  • Google Chrome
  • Safari

Selenium WebDriver - 功能

Selenium WebDriver 的一些最重要的特性是:

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

Selenium WebDriver 功能

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

Selenium WebDriver 功能

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

Selenium WebDriver 功能