Selenium IDE - 定位策略 (通过 XPath)2024年11月16日 | 阅读4分钟 - XPath 是一种用于在 XML 文档中定位节点的语言。
- 当您没有要定位的元素的合适 ID 或名称属性时,可以使用 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 中存在的命令文本框。

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

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

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

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

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

我们将对下一个命令使用相同的 XPath 属性,该命令涉及在 "用户名" 文本框中输入用户名作为登录凭据。 - 修改第三个命令的属性,如下所示
- 命令:type
- 目标://input[@id="email" and @placeholder="Email"]
- 值:用户名
- 执行后,此命令将在 "用户名" 文本框中键入用户名。

我们现在将添加一个命令,该命令将单击 "密码" 文本框。对于此命令,我们需要 "密码" 文本框的标识元素,这将帮助 IDE 识别目标位置。
 - 它将启动一个窗口,其中包含 "密码" 文本框开发中涉及的所有特定代码。

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

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

我们将对下一个命令使用相同的 XPath 属性,该命令涉及在 "密码" 文本框中输入密码作为登录凭据。 - 修改第五个命令的属性为
- 命令:type
- 目标://input[@id="password" and @placeholder="Password"]
- 值:******* (用户登录密码)
- 执行后,此命令将在 "密码" 文本框中键入用户登录密码。

最后,我们需要 "登录" 提交按钮的标识元素,这将帮助 IDE 识别目标位置。
 - 它将启动一个窗口,其中包含 "登录" 提交按钮开发中涉及的所有特定代码。
 因此,我们可以看到 "登录" 提交按钮的开发中涉及的标识元素包括:class、type 和 link。

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

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

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