HtmlUnit在<b>标记</b>之后跳过表格数据文本

时间:2013-10-08 11:56:49

标签: html-table htmlunit

我使用的是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?

谢谢,

尼尔

1 个答案:

答案 0 :(得分:0)

鉴于您未提供输入HTML文本或您使用的XPath,无法确定您是否有错误的XPath字符串。我假设你有正确的XPath字符串。

现在,你说:

  

我尝试使用pageHtml.asXml()将整个页面转储到日志中,但输出不包含“22”

如果是这样的话,你怎么知道22实际上在那里?我假设您已在实际的Web浏览器中进行了检查。该浏览器是否启用了JavaScript?我会假设它是。

然后最可能的问题是22是由JavaScript(可能是AJAX)设置的,HtmlUnit无法获取它(或者你没有在HtmlUnit中启用JavaScript)。

我的猜测是对的吗?