【问题标题】:Getting the text after a label with Selenium WebDriver使用 Selenium WebDriver 获取标签后的文本
【发布时间】:2013-06-12 06:43:28
【问题描述】:

我找到了寻找label text 的其他问题,但我想要的是标签后面的文字。

例如,我有一段代码:

<p>
<label>My awesome name:</label>
"Mark Mayo"
</p>

我的理解是,如果我想要标签,我可以使用 XPath 查询,例如:

//label[text()='My awesome name:']

查看标签是否存在,但不确定如何访问不在标签内而是在标签之后的纯文本。

建议?

【问题讨论】:

  • 好问题。你试过获取&lt;p&gt;的短信吗?
  • @Nashibukasan 我认为这可能有效,但

    中会有更多标签,因此这只是一个短期解决方案。目前正在尝试。

  • 我有一种感觉,如果有更多的标签和后续文本,那么从&lt;p&gt; 获取文本会得到&lt;p&gt; 下不包含在标签标签中的所有文本。也许尝试一些 css &gt; 下一个元素选择器?
  • 获取

    的文本只是让我得到标签文本 + 其他文本。我最终决定确认它是该内容的一部分,但这并不理想:/

  • 你也许可以得到innerHTML,然后做一个正则表达式匹配。

标签: c# selenium-webdriver


【解决方案1】:

类似(我使用 Java 语法)

public String getNodeTextContent(WebElement node) {
    String nodeContent = node.getAttribute("textContent");

    List<WebElement> childs = node.findElements(By.xpath("*"));
    if (childs.size() == 0) {
        return allContent;
    }

    for (WebElement child : childs) {
        nodeContent = nodeContent.replace(child.getAttribute("textContent"), "");
    }

    return nodeContent;
}

它基本上只是从节点内容中删除节点的所有直接子节点的文本内容,应该只留下节点的真实内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-22
    • 1970-01-01
    • 2019-12-29
    • 2021-06-09
    • 1970-01-01
    • 2017-05-09
    相关资源
    最近更新 更多