【问题标题】:XML child position vs document position in XPathXML 子位置与 XPath 中的文档位置
【发布时间】: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 + "]"));

但是这种按位置查找节点的方法以前似乎不适用于//。如何找到我的节点?

【问题讨论】:

    标签: java xml selenium xpath


    【解决方案1】:

    注意两者之间的区别:

    • //b[1],它选择所有 b 元素在 b 元素兄弟中的第一个元素因为 [1] 比 // 绑定得更紧密。
    • (//b)[1],在所有b元素中选择第一个b元素 在文档中。

    因此,如果您想要文档中的ithb 元素,请使用

    findElement(By.xpath("(//b)[" + i + "]"));
    

    当然,您可以通过在 b 步骤之前加上层次结构中的其他步骤,将范围限制在文档的某些部分。

    【讨论】:

      猜你喜欢
      • 2012-04-08
      • 1970-01-01
      • 2011-10-28
      • 1970-01-01
      • 1970-01-01
      • 2012-08-28
      • 2019-11-13
      • 2016-01-28
      • 1970-01-01
      相关资源
      最近更新 更多