我有一个基于GWT的页面,我想使用HtmlUnit为它创建一个HTML快照。
该页面使用产品上的Ajax / JavaScript信息加载,因此大约1秒钟内有一个“加载…”消息,然后出现该内容。
问题是HtmlUnit似乎没有捕获信息,所有我得到的是“加载…”跨度。
以下是HtmlUnit的实验代码,我试图给予足够的时间等待加载数据,但是似乎并没有改变任何东西,而且我仍然无法捕获GWT javascript加载的数据。
WebClient webClient = new WebClient();
webClient.setJavaScriptEnabled(true);
webClient.setThrowExceptionOnScriptError(false);
webClient.setAjaxController(new NicelyResynchronizingAjaxController());
WebRequest request = new WebRequest(new 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());
有任何想法吗…?