如何获取此 XPATH 的最后一个匹配项?

Kat*_*ian 0 selenium xpath

driver.findElement(By.xpath(".//div[contains(text(),'Approval Date')]")).click();
Run Code Online (Sandbox Code Playgroud)

上面的代码找到了表中的第一个元素。

表中有三行带有文本“批准日期”。

如何选择第三行而不是默认选择第一行?

har*_*r07 5

在用方括号*括起来的初始 xpath 表达式后面添加[last()]位置索引谓词,以仅获取原始 xpath 的最后一个匹配元素:

(.//div[contains(text(),'Approval Date')])[last()]
Run Code Online (Sandbox Code Playgroud)

“另外,如何选择所有包含‘批准日期’的元素”

使用findElements()-with 复数 's'- 查找与选择器匹配的所有元素。

*)解释为什么括号是必要的:How to select指定节点在Xpath节点集中通过索引与Selenium?