gpt4 book ai didi

java - 为什么 XPath last() 函数不能像我预期的那样工作?

转载 作者:数据小太阳 更新时间:2023-10-29 02:00:43 28 4
gpt4 key购买 nike

我正在使用 Java 和 Selenium 编写测试。我需要获取另一个元素中的最后一个元素,所以我使用了 last()功能,但问题是当我申请时它并不总是给我带来最后一个:

//a//b[last()]

 <a> 
<l>
<b>asas</b>
</l>
<b>as</b>
</a>

获取<b>as</b> , 它带给我:

<b>asas</b>

<b>as</b>

但是当我将它应用到:

 <a>      
<b>asas</b>
<b>as</b>
</a>

它带给我:

<b>as</b>

最佳答案

这是 XPath 混淆的常见来源。首先是简单的部分:

  • //a 选择文档中的所有 a 元素。
  • //a//b 选择文档中的所有 b 元素a 元素的后代。

到目前为止,一切正常。 接下来是棘手的部分:

  1. 要选择 siblings 中的最后一个 b 元素(在 a 元素之下):

    //a//b[last()]

    这里,过滤是 b 选择标准的一部分,因为 [] 的优先级高于 //

  2. 要选择文档中 的最后一个 b 元素(在 a 元素下方):

    (//a//b)[last()]

    这里,last() 是所有选定的 b 元素列表的索引,因为 () 用于覆盖默认值优先级。

关于java - 为什么 XPath last() 函数不能像我预期的那样工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36754697/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com