为什么XPath last()函数无法正常运行?

我正在使用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>

回答:

首先是简单的部分:

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

到目前为止,正常的东西。

  1. b在 (a元素之下)选择最后一个元素:
    //a//b[last()]

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

  1. 要选择 的最后一个b元素(在元素之下): a
    (//a//b)[last()]

在此,由于是用于覆盖默认优先级的,所以它是last()所有选定b元素列表上的索引()

以上是 为什么XPath last()函数无法正常运行? 的全部内容, 来源链接: utcz.com/qa/423685.html

回到顶部