HTMLUnit 不会等待 Javascript
我有一个基于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("<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());
任何想法...?