我有一个基于GWT的页面,我想使用HtmlUnit为它创建一个HTML快照。
该页面使用产品上的Ajax / JavaScript信息加载,因此大约1秒钟内有一个“加载…”消息,然后出现该内容。
该页面使用产品上的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());
有任何想法吗…?