我正在使用Java和Selenium编写测试。我需要将另一个元素内的最后一个元素,所以我使用last()函数,但问题是,当我申请时,它并不总是带给我最后一个:
last()
//a//b[last()]
至
<a> <l> <b>asas</b> </l> <b>as</b> </a>
得到<b>as</b>,它带给我:
<b>as</b>
<b>asas</b> <b>as</b>
但是当我将其应用于:
<a> <b>asas</b> <b>as</b> </a>
它带给我:
这是XPath混乱的常见原因。 首先是简单的部分:
//a
a
//a//b
b
到目前为止,正常的东西。 接下来是棘手的部分:
此处,过滤是b选择标准的一部分,因为[]优先级高于//。
[]
//
(//a//b)[last()]
在此,由于last()所有优先b元素()均用于覆盖默认优先级,因此它是所有选定元素列表上的索引。
()