【发布时间】:2016-12-13 16:20:44
【问题描述】:
我有这样的东西(root 中有更多元素):
<root>
<a>
<b></b>
</a>
<a>
<b></b>
</a>
</root>
我想在i 位置找到b 节点。我尝试的是这样的:
findElement(By.xpath("root//b[" + i + "]"));
但是这种按位置查找节点的方法以前似乎不适用于//。如何找到我的节点?
【问题讨论】:
我有这样的东西(root 中有更多元素):
<root>
<a>
<b></b>
</a>
<a>
<b></b>
</a>
</root>
我想在i 位置找到b 节点。我尝试的是这样的:
findElement(By.xpath("root//b[" + i + "]"));
但是这种按位置查找节点的方法以前似乎不适用于//。如何找到我的节点?
【问题讨论】:
注意两者之间的区别:
//b[1],它选择所有 b 元素在 b 元素兄弟中的第一个元素因为 [1] 比 // 绑定得更紧密。(//b)[1],在所有b元素中选择第一个b元素
在文档中。因此,如果您想要文档中的ithb 元素,请使用
findElement(By.xpath("(//b)[" + i + "]"));
当然,您可以通过在 b 步骤之前加上层次结构中的其他步骤,将范围限制在文档的某些部分。
【讨论】: