我使用的是HtmlUnit 2.10版。我正在从html表中读取数据。有问题的单元格包含:
<td colspan="2" id="num_custs_text">
<b>Affected Customers:</b> 22
</td>
如果我使用:
final List<?> elements = pageHtml.getByXPath(getXPath());
for (Object rowObject : elements) {
(...)
String rowDataString = rowData.asText();
(...)
}
rowDataString 仅包含“受影响的客户:”。 它不包含“22”。我尝试使用 pageHtml.asXml()将整个页面转储到日志中,但输出不包含“22”。看起来HtmlUnit忽略了初始getPage操作上的标记之后的文本。
如何强制加载HtmlUnit?
谢谢,
尼尔
答案 0 :(得分:0)
鉴于您未提供输入HTML文本或您使用的XPath,无法确定您是否有错误的XPath字符串。我假设你有正确的XPath字符串。
现在,你说:
我尝试使用pageHtml.asXml()将整个页面转储到日志中,但输出不包含“22”
如果是这样的话,你怎么知道22实际上在那里?我假设您已在实际的Web浏览器中进行了检查。该浏览器是否启用了JavaScript?我会假设它是。
然后最可能的问题是22是由JavaScript(可能是AJAX)设置的,HtmlUnit无法获取它(或者你没有在HtmlUnit中启用JavaScript)。
我的猜测是对的吗?