我有一个基于GWT的页面,我想使用HtmlUnit为它创建一个HTML快照。 使用产品上的Ajax/JavaScript信息加载页面,因此大约1秒钟会出现加载...消息,然后显示内容。HTMLUnit不会等待Javascript
问题是,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());
任何想法......?
我要评论这一个。有同样的问题,并试图调试整个代码..非常感谢这一点。 – 2012-04-04 20:02:36
嗨。我有同样的问题,使用FIREFOX尽管IE使得页面现在几乎正常加载,但仍然卡住...正在加载...消息,它应该是大约9秒,用你的部分代码以及没有:(请帮助 – silvestrairwave 2014-04-04 09:41:56
谢谢!我已经失去了几个小时的调试,直到我发现你的意见! – kotslon 2016-02-04 07:44:33