距离给定元素最近的xpath元素

距离给定元素最近的xpath元素,xpath,selenium,Xpath,Selenium,使用xpath返回元素时遇到问题。 我需要从一个大表中获取第二个TD的文本 <tr> <td> <label for="PropertyA">Some text here </label> </td> <td> TEXT!! </td> </tr> 感谢标签中的元素,它应该是: //label[@for='PropertyA']/following::td[1] 然后使用宿主语言中的

使用xpath返回元素时遇到问题。 我需要从一个大表中获取第二个TD的文本

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

感谢
标签中的元素,它应该是:

//label[@for='PropertyA']/following::td[1]
然后使用宿主语言中的DOM方法来获取字符串值

或者使用以下选项选择文本节点(我不推荐):

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

string(//label[@for='PropertyA']/following::td[1])
您还可以从公共祖先
tr
中进行选择,如:

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

您正在查找以下同级轴
。它在同一父级中的兄弟姐妹中搜索-在那里它是
tr
。如果
td
s不在同一
tr
中,则找不到它们。如果需要,可以使用以下轴

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

获取以下任何元素:


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

+1用于使用
following sibling
而不是
following
。前者是一种更稳健的方法-出错的可能性更小,例如,如果没有以下兄弟::td,则不会选择错误的td。
//tr[td/label/@for='PropertyA']/td[2]
//td[label[@for='PropertyA']]/following-sibling::td[1]