我正在编写一种方法,以通过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所述)。