的HTML
<div id='one'> <button id='two'>i am button</button> <button id='three'>i am button</button> i am div </div>
码
driver.findElement(By.id('one')).getText();
我已经看到这个问题在过去大约一年左右的时间里弹出了几次,我想尝试编写此函数…所以就到这里了。它接受父元素,并删除每个子元素的textContent,直到剩下的是textNode为止。我已经在您的HTML上对其进行了测试,并且可以正常工作。
/** * Takes a parent element and strips out the textContent of all child elements and returns textNode content only * * @param e * the parent element * @return the text from the child textNodes */ public static String getTextNode(WebElement e) { String text = e.getText().trim(); List<WebElement> children = e.findElements(By.xpath("./*")); for (WebElement child : children) { text = text.replaceFirst(child.getText(), "").trim(); } return text; }
你叫它
System.out.println(getTextNode(driver.findElement(By.id("one"))));