driver.findElement(By.xpath(".//div[contains(text(),'Approval Date')]")).click();
上面找到了表格中的第一个元素。
有三行文字'审批日期'在表中。
如何选择第三行而不是默认选择第一行?
答案 0 :(得分:2)
如果您想要" 3rd",如您所说,那么您可以去[3]
driver.findElement( By.xpath(".//div[contains(text(),'Approval Date')][3]")).click();
例如,如果你想要"最后"然后进入[last()]
driver.findElement( By.xpath(".//div[contains(text(),'Approval Date')][last()]")).click();
在你的情况下,两者都会给出相同的结果......
关于你的问题"如何选择包含"批准日期"的所有元素:
List<WebElement> elements = driver.findElements( By.xpath(".//div[contains(text(),'Approval Date')]"));
答案 1 :(得分:1)
在包含在括号 * 中的初始xpath表达式 之后添加[last()]
位置索引谓词,以仅获取最后匹配的元素原始xpath:
(.//div[contains(text(),'Approval Date')])[last()]
“此外,如何选择包含'审批日期'的所有元素”
使用findElements()
- 复数's'来查找选择器匹配的所有元素。
*)解释为什么需要括号:How to select specified node within Xpath node sets by index with Selenium?