📜  Selenium IDE-定位策略-按XPath定位

📅  最后修改于: 2020-11-06 01:56:47             🧑  作者: Mango

Selenium IDE定位策略(通过XPath)

  • XPath是一种用于在XML文档中定位节点的语言。
  • 当您没有要查找的元素的合适的id或name属性时,可以使用XPath替代。
  • XPath提供了以下定位策略:
    • XPath Absolute
    • XPath Attributes

XPath Absolute(不推荐)

  • XPath Absolute使用户能够提及从根HTML标记到特定元素的完整XPath位置。
  • 不建议这样做,因为它会占据完整的XPath位置,并且如果Web元素的位置已更改或属于其他父对象,则XPath将无法找到所需的元素。
  • Syntax://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 Attributes。
  • XPath属性允许我们使用它们的不同属性来定位Web元素。
  • 语法:// htmltag [@ attribute1 =’value1’and @ attribute2 =’value2′]
  • 示例:// input [@ id =’passwd’和@ placeholder =’password’]

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

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

  • 启动Firefox浏览器。
  • 单击浏览器右上角的selenium图标。
  • 它将启动Selenium IDE的默认界面。
  • 单击“测试脚本编辑器”框中显示的命令文本框。

  • 将第一个命令的属性修改为:

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

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

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

因此,我们可以看到开发“用户名”文本框所涉及的标识元素包括:id,类,名称和占位符。

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

  • 将第二个命令的属性修改为:
    • 命令:点击
    • 目标: //输入[@ id =“ email”和@ placeholder =“ Email”]
    • 执行后,该命令将单击“用户名”文本框。

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

  • 将第三个命令的属性修改为:
    • 命令:类型
    • 目标: //输入[@ id =“ email”和@ placeholder =“ Email”]
    • 值:用户名
    • 执行后,此命令将在“用户名”文本框中键入用户名。

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

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

    • 它将启动一个窗口,其中包含开发“密码”文本框所涉及的所有特定代码。

因此,我们可以看到“密码”文本框开发中涉及的标识元素包括:id,类,名称和占位符。

因此,我们将“ Password”文本框的XPath属性编写为:// input [@ id =“ password”和@ placeholder =“ Password”]

  • 将第四个命令的属性修改为:
    • 命令:点击
    • 目标: //输入[@ id =“密码”和@ placeholder =“密码”]
    • 执行后,此命令将单击“密码”文本框。

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

  • 将第五条命令的属性修改为:
    • 命令:类型
    • 目标: //输入[@ id =“密码”和@ placeholder =“密码”]
    • 值:*******(用户登录密码)
    • 执行后,此命令将在“密码”文本框中键入用户登录密码。

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

    • 右键单击“登录”按钮,然后选择“检查元素”。

    • 它将启动一个窗口,其中包含开发“登录”提交按钮所涉及的所有特定代码。


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

  • 将第六条命令的属性修改为:
    • 命令:点击
    • 目标: // button [@ class =“ btn btn btn-primary”和@ type =“ submit”]
    • 执行后,该命令将单击“登录”提交按钮。

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

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