java - 如何检索元素的文本以及
文本而不是新行
问题描述
在上图中,我们可以看到<\br>
文本中有一个。现在在断言语句中,我必须根据我选择的选项验证它,该选项具有“空白”,但没有<\br>
将其后面的文本返回到新行。
所以我在这里尝试做的是我想检索<div>
包含<\br>
“文本”的值,以便我可以检索整个文本并替换<\br>
为“空格”,然后根据预期的文本进行验证。
我试过-<br>
getAttribute("textContent")
:
driver.findElement(By.xpath(//div[contains(@class,'v-label')])).getAttribute("textContent");
它检索文本而<\br>
不像 -CIABC-Idq BLA HLA N1 Dd/Coind(BLen AccBLA HLA)
getAttribute("innerText")
:
driver.findElement(By.xpath(//div[contains(@class,'v-label')])).getAttribute("innerText");
它检索文本并返回到新行,例如 -
CIABC-Idq BLA HLA N1 Dd/Coind
(BLen AccBLA HLA)
预期:
- 我要么需要检索和之间有空格的
CIABC-Idq BLA HLA N1 Dd/Coind
文本(BLen AccBLA HLA)
或者
- 整个文本以及在和
<\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>
有人可以帮忙吗?
解决方案
textContent
将评估控制字符并innerText
评估<br>
标签,因此仅返回文本。(请参阅textContent 与 innerText 之间的区别)
相反,您可以获得innerHTML属性:
driver.findElement(By.xpath(//div[contains(@class,'v-label')])).getAttribute("innerHTML");
Element 属性 innerHTML 获取或设置元素中包含的 HTML 或 XML 标记。
innerHTML
将保留标记。
推荐阅读
- ruby-on-rails - Docker:配置 solr 以便它与本地运行的数据库连接,而不是在 docker 上?
- kubernetes - 如何在 EKS Fargate 中挂载 Docker.sock?
- kotlin - 如何在 kotlin 的布局文件中绑定来自内部数据类的变量?
- macos - MacOS Catalina 上的 GraalVM
- c# - 在托管服务中注入现有记录器
- oauth-2.0 - 带有刷新令牌的 Google Oauth2 服务器端流程 java
- c# - 如何将字符串格式的不同日期转换为特定格式,如 YYYYMMDD
- css - 有条件地将覆盖的 SCSS 应用于 Angular 组件
- java - 在 Activity App Bar 上按下后转到带有它被调用的片段的父 Activity
- angular - p-menuitem 不是已知元素 - primeng