我正在编写一种方法,以通过XPath查找任何给定元素的父元素。我真的对为什么这不起作用感到困惑。

protected WebElement findParent(WebDriver driver, WebElement element) {
    return driver.findElement(By.xpath("parent::*"));
}

最佳答案

尝试使用element参数而不是WebElement.findElement使用driver参数调用WebDriver.findElement。实际上,您最好删除driver参数,因为如果您要检索其父元素,则不需要它。

protected WebElement findParent(WebElement element) {
    if (element == null) {
        return null;
    } else {
        return element.findElement(By.xpath(".."));
    }
}


另外,您的"parent::*" XPath应该可以正常工作,但是我建议使用惯用的".."(如@alecxe所述)。

09-11 19:13
查看更多