我试过了
private WebElement getParent(final WebElement webElement) {
return webElement.findElement(By.xpath(".."));
}
Run Code Online (Sandbox Code Playgroud)
但是我得到了:
org.openqa.selenium.InvalidSelectorException:给定的选择器..无效或不会产生WebElement.发生以下错误:InvalidSelectorError:xpath表达式".."的结果是:[object XrayWrapper [object HTMLDocument]].它应该是一个元素.命令持续时间或超时:10毫秒有关此错误的文档,
有没有办法获得当前元素的父元素?谢谢
Jim*_*ans 19
有几种方法可以实现这一目标.如果您坚持使用XPath来执行此操作,则需要将上下文节点添加到定位器,如下所示:
WebElement parentElement = childElement.findElement(By.xpath("./.."));
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用JavascriptExecutor可能稍微高效的界面.这看起来像这样:
// NOTE: broken into separate statements for clarity. Could be done as one statement.
JavascriptExecutor executor = (JavascriptExecutor)driver;
WebElement parentElement = (WebElement)executor.executeScript("return arguments[0].parentNode;", childElement);
Run Code Online (Sandbox Code Playgroud)
小智 3
或者,您可以尝试使用 Javascript Executor 吗?
WebElement childElement = driver.findElement(By.id("someIdHere"));
WebElement parent = (WebElement) ((JavascriptExecutor) driver)
.executeScript("return arguments[0].parentNode;", childElement);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22806 次 |
| 最近记录: |