📅  最后修改于: 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命令的目标。