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

时间:2018-09-06 21:16:00

标签: java selenium getattribute

Outlined problem

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

所以我在这里想要做的是要检索包含<div>的{​​{1}}的值作为'text',以便我可以检索整个文本并替换{{1} }加上“空格”,然后根据预期文字进行验证。

我尝试过-<\br>

  1. <\br>
<br>

检索不带getAttribute("textContent")的文本,例如- driver.findElement(By.xpath(//div[contains(@class,'v-label')])).getAttribute("textContent");

  1. <\br>
CIABC-Idq BLA HLA N1 Dd/Coind(BLen AccBLA HLA)

检索文本并返回到新行,例如-
getAttribute("innerText")

预期

  1. 我要么需要检索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)之间的<\br>,因此我可以将字符CIABC-Idq BLA HLA N1 Dd/Coind替换为空格,然后使用期望值声明字符串。 / li>

HTML代码片段:

(BLen AccBLA HLA)

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

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

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

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

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

innerHTML将保留标记。