我有一个基于GWT的页面,我想使用HtmlUnit为它创建一个HTML快照.页面使用产品上的Ajax/JavaScript信息加载,因此大约1秒钟就会出现Loading ...消息,然后会显示内容.
问题是HtmlUnit似乎没有捕获信息,我得到的只是"Loading ..."范围.
下面是一个带有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());
Run Code Online (Sandbox Code Playgroud)
有任何想法吗...?