在 Selenium 中查找组件的 6 种最简单方法

已发表: 2022-05-19

在 selenium 中查找组件

Selenium 中的组件在测试应用程序或软件时起着重要作用; 这些是 Selenium 自动化脚本的构建块。 但是,真正的挑战是在需要时在网页上找到这些组件。

幸运的是,有多种方法可以在 Selenium 中找到这些组件。 您可以找到特定用途的特定组件,这些组件可帮助您在自动化测试中进行不同的数据加载活动

这些被称为定位器或定位技术,只不过是强大的命令。 使用这些定位器,您可以快速找到可以执行多个用户操作的 GUI 组件。

但是,在研究在 Selenium 上查找组件的不同方法之前,了解这些组件是什么以及它们是如何工作的至关重要。

Selenium 中的组件

对网站进行回归测试或自动数据加载的最佳工具无疑是 Selenium。 简单来说,我们可以说 Selenium 是一个通过程序或命令控制 Web 浏览器的强大工具。

它适用于每个浏览器,并允许您在每个关键操作系统上进行操作。 它的脚本由多种编程语言组成,如 Python、Java、C# 等。此外,它还使用其他几种语言,在这里我们将使用非常流行的语言 Python 进行简单理解。

Selenium 拥有四个主要元素——Selenium IDE、Selenium RC、Selenium Web Driver 和 Selenium GRID。

Selenium 在全球范围内的机械化测试人员已经存在了一段时间。

让我们来看看硒的四种主要元素——

  • 硒 IDE

Selenium IDE(也称为集成开发环境)是 Selenium Suite 中的关键设备之一。 它是用于 Selenium 实验的完整集成开发环境 (IDE)。 它作为 Firefox 添加以及 Chrome 扩展程序强制执行。

Selenium IDE 的另一个方面是它能够捕获、重写和调试实际试验。 它以前被认为是 Selenium Recorder。 Selenium-IDE 最初由 Shinya Kasatani 创立,并于 2006 年赠予 Selenium 项目。

Selenium IDE 早些时候没有得到适当的维护,并于 2018 年开始存在。

文字可能会自行捕获和手动修改,提供自动完成帮助和快速切换命令的能力。 脚本以 Selenese 报告,Selenium 是一种特殊的试用脚本语言。

Selenese 提供用于在浏览器中执行活动的命令(按链接,选择替代项)并从出现的页面获取数据。

  • Selenium RC(遥控器)

Selenium Remote Control (aka RC) 是一个由 Java 语言组成的 Web 服务器,它通过 HTTP 通过浏览器批准命令。 RC 使使用多种编码语言为 Web 应用程序编写计算机化测试变得更加容易,从而使 Selenium 能够很好地集成到流行的组件测试框架中。

Selenium 程序目前为 PHP、Python、Ruby、.NET、Perl 和 Java 等多种语言提供消费者驱动程序,以简化论文测试。 此外,您可以使用带有 JavaScript 的 Java 驱动程序(通过 Rhino 引擎)。

发布 HTML 测试试验需要一个 selenium RC 服务器的示例——这意味着每次相似性运行都必须有多个扩展坞。 尽管如此,对于 Java/PHP 测试用例,只需要一个 Selenium RC 样本就可以无休止地运行。

  • Selenium 网络驱动程序

Selenium WebDriver 是 Selenium RC 的继承者。 Selenium WebDriver 遵守命令(以 Selenese 或通过客户端 API 交付)并将它们提供给浏览器。 这是通过特定于浏览器的浏览器驱动程序强制执行的,该驱动程序将命令传递给浏览器并获得结果。

几乎所有浏览器驱动程序都可以打开和访问浏览器应用程序(例如 Mozilla Firefox、Google Chrome、Internet Explorer、Safari 甚至 Microsoft Edge); 此外,HtmlUnit 浏览器驱动程序通过使用无头应用程序 HtmlUnit 来模拟浏览器。

Selenium WebDriver 不需要唯一的服务器来强制执行测试。 相反,WebDriver 会快速打开浏览器插图并对其进行调节。 尽管如此,您可以使用 Selenium Grid 和 WebDriver 在远程网络上执行测试。

在可行的情况下,WebDriver 使用原始操作系统级别的功能而不是基于浏览器的 JavaScript 建议来运行应用程序。 这绕过了原始命令和 JavaScript 命令之间存在适度差异的问题,包括安全法规。

  • 硒网格

Selenium Grid 是一个服务器,它使实验能够使用在隔离设备上运行的 Web 浏览器样本。 集线器记录访问浏览器样本(WebDriver 节点)的服务器,并允许测试使用这些样本。

Selenium Grid 允许在多个设备上进行相应的测试,并集中管理不同的浏览器版本和浏览器组合(而不是每个单独的测试)。

掌握对孤立浏览器实例的测试的熟练程度有助于在各种机器上传播测试规律,并在运行于多个平台或操作系统的应用程序中进行测试。 在并非所有用于测试的应用程序都可以在同一平台上运行的情况下,另一个是有益的。

在 Selenium 中查找组件的 6 种最简单方法

方法只不过是 Selenium 中的定位器; 这些定位器是强大的命令,可用于输入和定位 Selenium 中的 GUI 元素。 此外,您可以使用这些命令来执行多个用户操作。

在 Selenium 中查找 GUI 组件的 6 种简单方法列表是 -

  • ID
  • 姓名
  • 链接文本
  • 部分链接文本
  • 标签名称
  • 班级名称

在 Selenium WebDriver 中使用上述定位器,您可以通过“findElement/findElements”语法定位组件。

1.身份定位器

ID 是在 Selenium 上查找组件的最有效和最快的定位器选项。 ID 是标识任何组件的唯一编号。 ID 定位器调用document.getElementById() ,使其成为最快的定位器选项。 许多浏览器优化了 iD。

2.名称定位器

在 ID 定位器到达名称定位器之后,如果任何 Web 元素都没有 ID 属性,这将是有益的。 但是,名称定位器的问题在于它们不可能每次都是唯一的。 如果至少有两个或多个名称,Selenium 将选择第一个匹配的元素来执行任何操作。

3. 链接文本定位器

这是一个基于情境的定位选项。 LinkText 定位器通过By.linkText()方法使用它们的确切链接文本访问链接 但是,可能存在两个或多个关联具有确切链接文本的情况; 在这种情况下,Selenium 会选择与链接匹配的第一个元素来执行任何操作。

4.部分链接文本定位器

这又是一个基于情境的定位选项。 Partial LinkText Locator 通过By.partialLinkText()方法使用部分链接文本访问链接 如果您指定具有多个匹配项的部分链接文本,则将访问所有匹配项中的第一个匹配项。

5. 标签名定位器

TagName Locator 是 DOM 结构的一部分,在这个结构中,Selenium 网页上的每个元素都是通过按钮标签、输入标签、锚标签等标签定义的。每个标签都有多个属性,如名称、值类、ID , ETC。

6.类名定位器

当使用 class 属性定义元素时,ClassName Locator 是定位它们的最佳方法之一。 类属性最好的部分是它不需要像 ID 一样是唯一的。

在 Selenium 中查找组件的其他方法

除了在 Selenium 上查找组件的六种最突出的方法外,还有另外两种方法。 这些方法没有那么突出,但使用起来很有效。

1.XPath

XPath 表达式提供了可靠的方式来定位 Web 组件,但它也是所有定位器中最慢的。 XPath 引擎在不同浏览器之间是不一致的,因为它们在每个浏览器中都不同。 例如,如果您在 Chrome 中编写 XPath 代码,它将无法在 IE 上运行。

2. CSS 选择器

如果 Web 组件缺少 ID 或名称,找到它们的最佳方法是使用 CSS 选择器。 与 XPath 相比,CSS 更快、更易读。 CSS 兼容所有流行的浏览器并提高性能。 当您想在多个浏览器上测试我们的应用程序时,CSS 变得很有用。 CSS 最适合 IE,因为 XPath 是无功能的 IE。

使用 LambdaTest 开始您的 Selenium 自动化测试

在 Selenium 中查找组件需要完全了解组件在网页上的位置以及所有可能的方法来做出正确的方法。 我们列出了六种最佳方式来做到这一点; 但是,您可能会发现更多,但我们上面列出的内容足以找到所有 Selenium 组件。 Selenium 使用 LambdaTest 框架变得容易,所有重要组件都触手可及。

LambdaTest 是一个强大的云测试平台,将帮助您提高自动化测试技能。 它使用 Selenium、Cypress、Playwright 和 Puppeteer 等顶级自动化测试工具在 3000 多种桌面和移动浏览器上提供自动化浏览器测试,并使用集成的开发人员工具进行调试,这也将帮助您学习高级自动化测试工具。 它还拥有来自 130 多个国家/地区的超过 600,000 多名忠实用户。

Selenium 与 LambdaTest 是您提升测试之旅所需的唯一一对。