Selenium 简明教程

Selenium - Components

Selenium 组件通常被称为 Selenium 工具套件。总共有四个工具被共同称为 Selenium 组件。让我们讨论 Selenium 中的各种组件 -

  1. Selenium IDE

  2. Selenium RC

  3. Selenium Webdriver

  4. Selenium Grid

Selenium IDE

Selenium 集成开发环境是 Selenium 套件中的一项重要内容。它最初作为一个 Firefox 插件进行开发,但现在可以在 Firefox 和 Chrome 浏览器中使用。下面列出 Selenium IDE 的一些特性 -

  1. 录制、调试、执行和编辑功能测试可在 Selenium IDE 中完成。

  2. Selenium IDE 中的脚本是用 Selenese 编写的,Selenese 是 Selenium 中的一种脚本语言。

  3. Selenium IDE 命令帮助我们执行诸如点击按钮或链接、在编辑框中输入、从网元中获取文本等任务。

  4. Selenium IDE 测试可转换为 Java、C#、Python、TestNG 等格式。其默认格式为 .html。

  5. Selenium IDE 测试可导出并在 Selenium Webdriver 和 Selenium RC 中使用。

  6. Selenium IDE 不需要技术或编程知识。因此,它只能用于测试简单的场景,而不能用于解决复杂的用例。

  7. Selenium IDE 没有为数据驱动测试提供测试参数化的功能。

  8. 在将 Selenium IDE 用于完成复杂测试项目时,难以维护对象和其他可重用的组件。

Selenium Remote Control

Selenium Remote Control 是在 Java 中执行的服务器。它可以接受使用 HTTP 的浏览器的命令。Selenium RC 具有 Selenium RC 服务器和 Selenium RC 客户端。Selenium RC 已过时,Selenium 已将其弃用。

下面列出 Selenium RC 的一些特性 -

  1. 可以在 Java、Python、C# 等各种编程语言中开发 Selenium RC 中的自动化测试。

  2. Selenium RC 可用于编写自动化测试,以测试 Web 应用程序。

  3. Selenium RC 包含一个代理服务器,该服务器可以提供浏览器支持,使应用程序如同在代理服务器的域中一样可用。

  4. 为了启动测试执行,我们必须创建一个 Selenium RC 服务器实例。

Selenium WebDriver

Selenium WebDriver(从 Selenium 版本 2 开始)是 Selenium RC 的替代品,它可以直接向浏览器发送命令并检索结果,因此比 Selenium RC 更快。它接收命令并将它们传递给浏览器。这是借助于向浏览器发送命令并获取结果的浏览器驱动程序来完成的。

Selenium 版本 2 将 Selenium RC 和 Selenium Webdriver 的有用特性合并到 Selenium Webdriver 中。随后,Selenium 3 为 Selenium Webdriver 添加了更多特性。

下面列出 Selenium Webdriver 的一些特性 -

  1. 自动化测试可以使用多种编程语言编写,如 Java、C#、Python、JavaScript 等。

  2. Selenium 网页驱动程序支持 Chrome、Firefox、Safari、IE 等浏览器。

  3. Selenium 网页驱动程序可以在 Windows、Mac、Linux、Android 等多个平台上使用。

  4. 借助 HTMLUnit 浏览器驱动程序,可以实现无界面执行。

  5. Selenium 网页驱动程序不需要服务器来启动测试执行,并且直接与浏览器通信。

  6. Selenium 网页驱动程序是开源的,并且不产生任何许可费用。

  7. Selenium 网页驱动程序没有 IDE,因此创建测试脚本很耗时。

  8. Selenium 网页驱动程序仅支持基于 Web 的应用程序。

  9. Selenium 网页驱动程序不支持自动化二维码、验证码和条码场景。

  10. Selenium 网页驱动程序没有对象存储库/恢复场景这样的功能。

  11. Selenium 网页驱动程序没有默认的测试报告生成。

  12. Selenium 网页驱动程序需要编程和技术知识来开发自动化测试。

  13. Selenium 网页驱动程序需要时间才能与新浏览器兼容并稳定。

  14. 由于没有供应商支持,Selenium 网页驱动程序很难设置。

  15. Selenium 网页驱动程序可以扩展到公开 DOM 的各种技术。

  16. Selenium 网页驱动程序有一个庞大的社区支持,可以在出现问题时提供帮助。

Selenium Grid

Selenium Grid 主要用于并行测试。它采用集线器(充当中央部分,其余部分被视为节点)和节点架构。Selenium Grid 让我们能够同时在多台机器上执行各种测试。Selenium Grid 主要是为了执行测试而不是设计而使用的。

以下是 Selenium Grid 的部分功能:

  1. 存在集线器机器,使用 Selenium Grid 指导多台机器上的执行。此外,还有多个节点机器,实际执行发生在这些机器上。

  2. Selenium Grid 支持对多个浏览器和平台进行测试。通过允许并行执行测试减少执行时间。

目前最新的 Selenium 版本为 4 版本。从 Selenium 4 版本开始,整个架构完全兼容 W3C(万维网联盟),这意味着 Selenium 4 遵循 W3C 提供的所有标准和指南。我们可以从下面的链接获取更多有关 W3C 的信息 −

Selenium 3 和 Selenium 4 之间的基本区别在于,在 Selenium 3 中,客户端和服务器之间的通信是通过 JSON Wire 协议进行的,但是,从 Selenium 4 开始,服务器和客户端之间存在直接通信,遵循 W3C 指南。

在 Selenium 4 之前,客户端和服务器之间的通信是通过 HTTP 上的 JSON Wire 协议进行的。但是,Selenium 4 中不存在 JSON Wire 协议,并且客户端和服务器之间使用 W3C 协议直接通信。

此外,Selenium 4 提供了一些额外的定位器(除了常规定位器,如 id、class、xpath 等)称为相对定位器,其中包含 following、below、near、toRightOf、toLeftOf 方法,以及多个相对定位器的链接。Selenium 4 还提供了对 ChromeDevTools 的访问,有助于调试、网络流量分析以及有助于自动化的其他功能。

因此,在本教程中,我们讨论了 Selenium 的各个组件。