xpath离给定元素最近的元素

nol*_*ogo 10 selenium xpath

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

<tr> 
 <td> 
  <label for="PropertyA">Some text here </label>
 </td>
 <td> TEXT!! </td>
</tr>
Run Code Online (Sandbox Code Playgroud)

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

这是我选择标签的方式:

"//label[@for='PropertyA']"
Run Code Online (Sandbox Code Playgroud)

谢谢

Gai*_*aim 19

你正在寻找轴following-sibling.它在同一个父母的兄弟姐妹中搜索 - 就在那里tr.如果tds不相同tr则找不到它们.如果你想要它,那么你可以使用轴following.

//td[label[@for='PropertyA']]/following-sibling::td[1]
Run Code Online (Sandbox Code Playgroud)


小智 8

label元素,它应该是:

//label[@for='PropertyA']/following::td[1]
Run Code Online (Sandbox Code Playgroud)

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

或者选择文本节点(我不推荐的东西):

//label[@for='PropertyA']/following::td[1]/text()
Run Code Online (Sandbox Code Playgroud)

或者,如果只有这一个节点,那么您可以使用该string()功能:

string(//label[@for='PropertyA']/following::td[1])
Run Code Online (Sandbox Code Playgroud)

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

//tr[td/label/@for='PropertyA']/td[2]
Run Code Online (Sandbox Code Playgroud)