Selenium:带有XPath child :: node()

时间:2016-11-17 20:37:39

标签: java selenium xpath

因此在Selenium中有一个WebElement,我试图通过XPath包括文本节点来获取它的所有直接子节点。我已经尝试了XPath" *"哪个有效,但没有给我任何文本节点(如果有的话)。根据XPath的文档,我尝试了很多东西:

  • "子::节点()"给我InvalidSelectorException。
  • 尝试使用" *"获取所有节点然后尝试使用" text()"来获取所有文本节点:在" text()"上给我InvalidSelectorException。查询。

我在Chrome上使用XPathHelper扩展程序试用了这些XPath,它的功能很有意义,但它似乎与Selenium(Chrome WebDriver和PhantomJS)无关。

这是我认为应该有效的循环:

for(WebElement child : node.findElements(new By.ByXPath("child::node()"))) {
    //Do something with child
}

哪里可能是问题?

1 个答案:

答案 0 :(得分:0)

这就是我使用的。

public String getHiddenText(WebDriver driver, WebElement aWebElement) {
    return (String) ((JavascriptExecutor) driver).executeScript("return arguments[0].textContent;", aWebElement);
}

解决crawljax评论,

public String getHiddenText(EmbeddedBrowser browser, WebElement aWebElement) {
    WebDriver driver = browser.getDriver();
    return (String) ((JavascriptExecutor) driver).executeScript("return arguments[0].textContent;", aWebElement);
}

我发现学习新工具的最佳方法是转到github repository并在自动化测试中搜索如何使用它的示例。只是说。 : - )