为什么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
元素后代的所有元素。
到目前为止,正常的东西。
- 要
b
在 (a
元素之下)选择最后一个元素://a//b[last()]
此处,过滤是b
选择标准的一部分,因为[]
优先级高于//
。
- 要选择 的最后一个
b
元素(在元素之下):a
(//a//b)[last()]
在此,由于last()
所有优先b
元素()
均用于覆盖默认优先级,因此它是所有选定元素列表上的索引。
以上是 为什么XPath last()函数不能按我预期的那样工作? 的全部内容, 来源链接: utcz.com/qa/400847.html