在我的表格HTML中我可以通过两种方式获得rd标记:
1
<td><font size="4" face="Arial"><i>Google</i></font></td>
2
<td>Google</td>
我正在使用:
String tdValue = rowDataElement.getAttribute("innerHTML");
现在当&#39;&#39;定义为它在第二个选项中我得到正确的字符串为&#34; Google&#34;,但是当它有其他元素时,我得到完整的元素字符串。
有没有办法总是为元素获取内部字符串?
答案 0 :(得分:0)
getAttribute()
获取元素的给定属性的值。 getAttribute()
将返回当前值,即使在加载页面后修改了属性也是如此。此方法将返回具有给定名称的属性的值(如果存在)。如果没有,则返回具有给定名称的属性的值。如果两者都不存在,则返回null。
innerHTML
属性设置或获取描述元素后代的HTML语法。
一个例子:
WebElement content = element.innerHTML;
content will contain the serialized HTML code describing all of the element's descendants.
所以当你的 HTML 是:
<td>Google</td>
如果你提到:
String tdValue = rowDataElement.getAttribute("innerHTML");
输出为 Google (纯文本格式),因为<td>
标记只有 innerText 但没有后代。
但是当你的 HTML 是:
<td><font size="4" face="Arial"><i>Google</i></font></td>
以更简化的方式HTML DOM看起来:
<td>
<font size="4" face="Arial">
<i>Google</i>
</font>
</td>
现在,如果你提到:
String tdValue = rowDataElement.getAttribute("innerHTML");
根据innerHTML
的文档,提取了描述所有元素后代的序列化HTML代码。此外,如果<div>
或<span>
节点的子文本节点包含字符(&)
,(<)
或(>)
; innerHTML分别将这些字符作为&
,<
和>
返回。
因此,您将获得完整的元素字符串。
使用Node.getText
或Node.textContent
获取这些文本节点的正确副本&#39;内容。