Java 无法使XPath函数last()工作

Java 无法使XPath函数last()工作,java,html,xml,selenium,xpath,Java,Html,Xml,Selenium,Xpath,我正在用selenium测试一个web应用程序。我试图在最近的一篇文章中得到最后的评论,最近的文章总是在顶部。最后一条评论总是在帖子下方的帖子底部 现在,在我的测试提要中,在最近的帖子上有两条评论 第一个具有以下XPath: /html/body/main/div/section/div[3]/div/div[2]/div[2]/div/div/div[1]/div[2]/div[2] /html/body/main/div/section/div[3]/div/div[2]/div[2]/d

我正在用selenium测试一个web应用程序。我试图在最近的一篇文章中得到最后的评论,最近的文章总是在顶部。最后一条评论总是在帖子下方的帖子底部

现在,在我的测试提要中,在最近的帖子上有两条评论

第一个具有以下XPath:

/html/body/main/div/section/div[3]/div/div[2]/div[2]/div/div/div[1]/div[2]/div[2]
/html/body/main/div/section/div[3]/div/div[2]/div[2]/div/div/div[2]/div[2]/div[2]
第二个是XPath:

/html/body/main/div/section/div[3]/div/div[2]/div[2]/div/div/div[1]/div[2]/div[2]
/html/body/main/div/section/div[3]/div/div[2]/div[2]/div/div/div[2]/div[2]/div[2]
我尝试使用以下XPath来始终获取最近帖子的最后一条评论:

/html/body/main/div/section/div[3]/div/div[2]/div[2]/div/div/div[last()]/div[2]/div[2]

当我这样做时,chrome开发工具无法识别具有该xpath的元素。我做错了什么?

使用findElements返回列表。然后,您可以根据需要选择该列表中的第一个或最后一个元素。没有HTML,很难确定确切的步骤。类似的内容应该可以帮助您:

    List<WebElement> posts = driver.findElements(By.xpath("//postElements"));
    WebElement firstPost = posts.get(0);
    List<WebElement> comments = firstPost.findElements(By.xpath("//commentsXpath"));
    WebElement lastComment = comments.get(comments.size() - 1);
List posts=driver.findElements(By.xpath(“//postElements”);
WebElement firstPost=posts.get(0);
List comments=firstPost.findElements(By.xpath(//commentsXpath));
WebElement lastComment=comments.get(comments.size()-1);
在您的xpath中尝试此xpath:added(),有关更多详细信息,请阅读参考资料

(/html/body/main/div/section/div[3]/div/div[2]/div[2]/div/div/div)[last()]/div[2]/div[2]
参考文献-


如果你发布了一个包含HTML的文档,那么帮助你会容易得多。这有帮助吗?