如何找到没有id或名称的复杂标签的XPath

时间:2012-10-07 13:59:44

标签: xpath selenium

我必须找到代码的XPath:

<td>
<input type="button" onclick="redirectToUserList(5);" class="btnManage" value="Manage Users" style="background-color: transparent;">

使用firebug,XPath是:

  

/ HTML /体/ DIV / DIV / DIV [4] /表/ tbody的/ TR / TD /表/ tbody的/ TR [2] / TD / DIV /表/ tbody的/ TR / TD
  /表/ tbody的/ TR [5] / TD / DIV / DIV /形式/表/ tbody的/ TR [2] / TD [4] /输入

但是我怎么能有一个更短的xpath,就像我希望跟随可以运行: //输入[@value =&#39;管理用户&#39;]

请使用标准语法建议如何找到更短的XPath?

3 个答案:

答案 0 :(得分:6)

不必使用ID或名称。您可以使用该元素的任何属性。

以下是给定定位器的不同xpath

 1. "//input[@value='Manage Users']"
 2. "//input[contains(@onclick,'redirectToUserList')]"
 3. "//input[@type='button' and @class='btnManage']"

答案 1 :(得分:5)

您无需搜索ID或名称,也可以搜索任何属性。

例如:

  //input[@value="Manage Users"]

听起来很独特

答案 2 :(得分:0)

作为上述给定答案的插件,任何特定属性(如id或name)都不是必需的。

我们主要使用id和value来唯一地标识元素,因为其他属性也可以指定其他一些定位器。

如果任何属性没有与其他定位器产生混淆,您可以毫无顾虑地选择它。

最后如果你在编写xpath时不太好,也不喜欢firebug给出的大型xpath,只需安装一个名为 Firepath 的firebug插件,它将为你提供最短的可行xpath。

您也可以使用其他插件,例如Xpath Checker等。