【发布时间】:2011-04-05 16:28:24
【问题描述】:
我有一个基于 GWT 的页面,我想使用 HtmlUnit 为其创建一个 HTML 快照。 该页面使用产品上的 Ajax/JavaScript 信息加载,因此在大约 1 秒钟内出现 Loading... 消息,然后显示内容。
问题是 HtmlUnit 似乎没有捕获信息,我得到的只是“正在加载...”跨度。
下面是一个带有 HtmlUnit 的实验代码,我尝试给它足够的时间来等待数据的加载,但它似乎没有改变任何东西,我仍然无法捕获 GWT javascript 加载的数据。
WebClient webClient = new WebClient();
webClient.setJavaScriptEnabled(true);
webClient.setThrowExceptionOnScriptError(false);
webClient.setAjaxController(new NicelyResynchronizingAjaxController());
WebRequest request = new WebRequest(new URL("<my_url>"));
HtmlPage page = webClient.getPage(request);
int i = webClient.waitForBackgroundJavaScript(1000);
while (i > 0)
{
i = webClient.waitForBackgroundJavaScript(1000);
if (i == 0)
{
break;
}
synchronized (page)
{
System.out.println("wait");
page.wait(500);
}
}
webClient.getAjaxController().processSynchron(page, request, false);
System.out.println(page.asXml());
有什么想法吗...?
【问题讨论】: