xpath离给定元素最近的元素

时间:2011-01-06 11:52:22

标签: xpath selenium

我在使用xpath返回元素时遇到问题。 我需要从一张大桌子上获取第二轮TD的文字。

<tr> 
 <td> 
  <label for="PropertyA">Some text here </label>
 </td>
 <td> TEXT!! </td>
</tr>

我能够找到标签元素,但是我在选择兄弟TD以返回文本时遇到了麻烦。

这是我选择标签的方式:

"//label[@for='PropertyA']"

感谢

3 个答案:

答案 0 :(得分:18)

您正在寻找轴following-sibling。它在同一个父级中的兄弟姐妹中搜索 - 它是tr。如果td不在tr内,则找不到它们。如果你想要它,那么你可以使用轴following

//td[label[@for='PropertyA']]/following-sibling::td[1]

答案 1 :(得分:8)

来自label元素,它应该是:

//label[@for='PropertyA']/following::td[1]

然后使用托管语言中的DOM方法获取字符串值。

或者选择文本节点(我不建议这样做):

//label[@for='PropertyA']/following::td[1]/text()

或者如果只有这一个节点,那么你可以使用string()函数:

string(//label[@for='PropertyA']/following::td[1])

您还可以从共同的祖先tr中选择:

//tr[td/label/@for='PropertyA']/td[2]

答案 2 :(得分:0)

获取以下元素:

// TD [标号[@for =&#39; PropertyA&#39;]] /以下同胞:: *