java - 如何获取 WebElement 的父级

标签 java selenium

<分区>

我试过了

private WebElement getParent(final WebElement webElement) {
    return webElement.findElement(By.xpath(".."));
}

但是我得到:

org.openqa.selenium.InvalidSelectorException: The given selector .. is either invalid or does not result in a WebElement. The following error occurred: InvalidSelectorError: The result of the xpath expression ".." is: [object XrayWrapper [object HTMLDocument]]. It should be an element. Command duration or timeout: 10 milliseconds For documentation on this error,

有没有办法获取当前元素的父元素?谢谢

最佳答案

您可以通过多种方式完成此操作。如果你坚持使用 XPath 来做,你需要将上下文节点添加到定位器中,像这样:

WebElement parentElement = childElement.findElement(By.xpath("./.."));

或者,您可以使用 JavascriptExecutor 接口(interface),它的性能可能会稍好一些。看起来像这样:

// 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);

关于java - 如何获取 WebElement 的父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24267413/

相关文章:

java - 枚举声明调用方法

java - 传递给组件的Java优雅访问属性,例如JComponent a&b使用字体1颜色2。动态访问1&2,并显示它们在a&b中使用

如果运行 Selenium/Protractor 的用户未交互式登录,则 Selenium/Protractor 无法运行浏览器测试 (E2E)

java - Selenium implicitlyWait 不工作?

java - 如何评估变量

java - 比较器和 BST

javascript - 从 Protractor 执行一个方法并获取返回值

google-chrome - 带 Selenium 的 capybara 等待 onchange 事件

java - Selenium - 等待页面渲染动态页面

java - 平衡设计原则 : Unit Testing