如何检索元素的文本以及 <br> 作为文本而不是新行

How to retrieve the Text of an element along with <br> as text not as a new Line

在上图中,我们可以看到文本中有一个<\br>。现在在 assert 语句中,我必须根据选项 I select 验证它,它有一个 'whitespace' 但没有 <\br> , returns 它后面的文本到一个新行。

所以我想在这里做的是我想检索 <div> 的值,包括 <\br> 作为 'text' 这样我就可以检索整个文本并替换<\br> 和 'space' 然后根据预期的文本进行验证。

我试过了-<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)
  2. 之间带有 space 的文本

  1. 全文连同 CIABC-Idq BLA HLA N1 Dd/Coind(BLen AccBLA HLA) 之间的 <\br> 所以我可以用白色 space 替换字符 <\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>

有人可以帮忙吗?

textContent 将评估控制字符,innerText 将评估 <br> 标签,因此仅返回文本。 (参见 difference between textContent vs innerText

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

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

The Element property innerHTML gets or sets the HTML or XML markup contained within the element.

innerHTML 将保留标记。