首页 > 解决方案 > 如何检索元素的文本以及
文本而不是新行

问题描述

概述的问题

在上图中,我们可以看到<\br>文本中有一个。现在在断言语句中,我必须根据我选择的选项验证它,该选项具有“空白”,但没有<\br>将其后面的文本返回到新行。

所以我在这里尝试做的是我想检索<div>包含<\br>“文本”的值,以便我可以检索整个文本并替换<\br>为“空格”,然后根据预期的文本进行验证。

我试过-<br>

  1. getAttribute("textContent")
 driver.findElement(By.xpath(//div[contains(@class,'v-label')])).getAttribute("textContent");

它检索文本而<\br>不像 -CIABC-Idq BLA HLA N1 Dd/Coind(BLen AccBLA HLA)

  1. getAttribute("innerText")
driver.findElement(By.xpath(//div[contains(@class,'v-label')])).getAttribute("innerText");

它检索文本并返回到新行,例如 -
CIABC-Idq BLA HLA N1 Dd/Coind (BLen AccBLA HLA)

预期

  1. 我要么需要检索和之间有空格的CIABC-Idq BLA HLA N1 Dd/Coind文本(BLen AccBLA HLA)

或者

  1. 整个文本以及在和<\br>之间CIABC-Idq BLA HLA N1 Dd/Coind(BLen AccBLA HLA)所以我可以用<\br>空格替换字符,然后用预期值断言字符串。

HTML 代码片段:

<div class="v-slot">
    <div class="v-label v-widget v-label-undef-w">
        CIABC-Idq BLA HLA N1 Dd/Coind
        <br>
        (BLen AccBLA HLA)
    </div>
</div>

有人可以帮忙吗?

标签: javaseleniumgetattribute

解决方案


textContent将评估控制字符并innerText评估<br>标签,因此仅返回文本。(请参阅textContent 与 innerText 之间的区别

相反,您可以获得innerHTML属性:

driver.findElement(By.xpath(//div[contains(@class,'v-label')])).getAttribute("innerHTML");

Element 属性 innerHTML 获取或设置元素中包含的 HTML 或 XML 标记。

innerHTML将保留标记。


推荐阅读