Selenium IDE - 定位策略 (通过 XPath)

2024年11月16日 | 阅读4分钟
  • XPath 是一种用于在 XML 文档中定位节点的语言。
  • 当您没有要定位的元素的合适 ID 或名称属性时,可以使用 XPath 作为替代方案。
  • XPath 提供了定位策略,例如
    • XPath 绝对路径
    • XPath 属性

XPath 绝对路径 (不推荐)

  • XPath 绝对路径允许用户从根 HTML 标签到特定元素提及完整的 XPath 位置。
  • 不推荐使用它,因为它需要完整的 XPath 位置,如果 Web 元素的位置发生变化或它属于其他父元素,则 XPath 将无法找到所需的元素。
  • 语法://html/body/tag1[index]/tag2[index]/.../tagN[index]
  • 示例://html/body/div[2]/div/div[2]/div/div/div/fieldset/form/div[1]/input[1]

XPath 属性

  • 当您没有合适的 id 或 name 属性来定位您要定位的元素时,始终推荐使用 XPath 属性。
  • XPath 属性允许我们使用不同的属性来定位 Web 元素。
  • 语法://htmltag[@attribute1='value1' and @attribute2='value2']
  • 示例://input[@id='passwd' and @placeholder='password']

让我们考虑一个关于如何将 XPath 用作 Selenium IDE 命令目标的示例。

我们将创建一个登录测试,以便您可以更好地理解通过 XPath 定位元素。由于不推荐使用 XPath 绝对路径,因此我们将使用 XPath 属性来定位 Web 元素。

  • 启动 Firefox 浏览器。
  • 单击浏览器右上角的 Selenium 图标。
  • 它将启动 Selenium IDE 的默认界面。
  • 单击 Test Script Editor Box 中存在的命令文本框。

Selenium IDE Locating Strategies By XPath
  • 修改第一个命令的属性,如下所示
    • 命令:open
    • 目标:https://www.testandquiz.com/user-login
    • 执行后,此命令将在您的 Firefox 浏览器中加载 Test and Quiz 登录页面。

Selenium IDE Locating Strategies By XPath

对于要输入的第二个命令,我们需要 "用户名" 文本框的标识元素,这将帮助 IDE 识别目标位置。

    • 右键单击“用户名”文本框,然后选择检查元素。

Selenium IDE Locating Strategies By XPath
    • 它将启动一个窗口,其中包含参与开发“用户名”文本框的所有特定代码。

Selenium IDE Locating Strategies By XPath

因此,我们可以看到 "用户名" 文本框的开发中涉及的标识元素包括:id、class、name 和 placeholder。


Selenium IDE Locating Strategies By XPath

因此,我们将为 "用户名" 文本框编写 XPath 属性://input[@id="email" and @placeholder="Email"]

  • 修改第二个命令的属性,如下所示
    • 命令:click at
    • 目标://input[@id="email" and @placeholder="Email"]
    • 执行此命令后,将单击 "用户名" 文本框。

Selenium IDE Locating Strategies By XPath

我们将对下一个命令使用相同的 XPath 属性,该命令涉及在 "用户名" 文本框中输入用户名作为登录凭据。

  • 修改第三个命令的属性,如下所示
    • 命令:type
    • 目标://input[@id="email" and @placeholder="Email"]
    • 值:用户名
    • 执行后,此命令将在 "用户名" 文本框中键入用户名。

Selenium IDE Locating Strategies By XPath

我们现在将添加一个命令,该命令将单击 "密码" 文本框。对于此命令,我们需要 "密码" 文本框的标识元素,这将帮助 IDE 识别目标位置。

    • 右键单击 "密码 "文本框,选择 "检查元素"。

Selenium IDE Locating Strategies By XPath
    • 它将启动一个窗口,其中包含 "密码" 文本框开发中涉及的所有特定代码。

Selenium IDE Locating Strategies By XPath

因此,我们可以看到 "密码" 文本框的开发中涉及的标识元素包括:id、class、name 和 placeholder。


Selenium IDE Locating Strategies By XPath

因此,我们将为 "密码" 文本框编写 XPath 属性://input[@id="password" and @placeholder="Password"]

  • 修改第四个命令的属性为
    • 命令:click at
    • 目标://input[@id="password" and @placeholder="Password"]
    • 执行后,此命令将单击 "密码" 文本框。

Selenium IDE Locating Strategies By XPath

我们将对下一个命令使用相同的 XPath 属性,该命令涉及在 "密码" 文本框中输入密码作为登录凭据。

  • 修改第五个命令的属性为
    • 命令:type
    • 目标://input[@id="password" and @placeholder="Password"]
    • 值:******* (用户登录密码)
    • 执行后,此命令将在 "密码" 文本框中键入用户登录密码。

Selenium IDE Locating Strategies By XPath

最后,我们需要 "登录" 提交按钮的标识元素,这将帮助 IDE 识别目标位置。

    • 右键单击 "登录" 按钮并选择检查元素。

Selenium IDE Locating Strategies By XPath
    • 它将启动一个窗口,其中包含 "登录" 提交按钮开发中涉及的所有特定代码。

Selenium IDE Locating Strategies By XPath
  • 因此,我们可以看到 "登录" 提交按钮的开发中涉及的标识元素包括:class、type 和 link。

  • Selenium IDE Locating Strategies By XPath

    因此,我们将为 "登录" 按钮编写 XPath 属性://button[@class="btn btn btn-primary" and @type="submit"]

    • 修改第六个命令的属性为
      • 命令:click at
      • 目标://button[@class="btn btn btn-primary" and @type="submit"]
      • 执行后,此命令将单击 "登录" 提交按钮。

    Selenium IDE Locating Strategies By XPath
    • 单击 IDE 工具栏菜单中存在的“运行当前测试”按钮。它将在浏览器上执行您插入的所有命令,并为您提供已执行测试脚本的总体摘要。
    • 日志窗格显示已执行测试脚本的总体摘要。

    Selenium IDE Locating Strategies By XPath

    因此,您可以看到我们已将 XPath 定位器用作大多数 Selenium 命令的目标。

    下一主题通过 CSS 定位