java - 如何使用 Selenium 从不包括其子元素的元素中获取文本

标签 java selenium

HTML

<div id='one'>
    <button id='two'>I am a button</button>
    <button id='three'>I am a button</button>
    I am a 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"))));

关于java - 如何使用 Selenium 从不包括其子元素的元素中获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39741076/

相关文章:

java - 使用 REST API 在 Jira 中创建问题

java - 如何发布java应用程序?

java - (Java)尽管链接在浏览器中工作得很好,但 HTTP GET 请求不断收到 400 响应代码

selenium - 如何使用xpath获取父子节点之间的值?

python - 如何创建 Selenium Webdriver 测试以验证元素不存在?

java - Selenium IEServerDriver 找不到 IE9 的新窗口

python - 使用 selenium 抓取 Instagram 粉丝

java - JCA 连接器 1.6 的 Maven 位置

java - Selenium Java 代码打印 google 搜索的前五个结果

java - 安卓 Intent : Is it possible to get a reference to the actual file in storage on the phone in a proper way?