
该页面使用产品上的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()); 有任何想法吗…?
解决方法 谢谢你的回应。我其实应该早点报道,我已经找到了解决方案。
显然,用FF初始化WebClIEnt时:
WebClIEnt webClIEnt = new WebClIEnt(browserVersion.firefox_3_6);
它似乎正在工作。当使用默认构造函数初始化WebClIEnt时,它默认使用ie7,我猜FF对AJAX有更好的支持,是推荐使用的模拟器。
总结以上是内存溢出为你收集整理的HTMLUnit不等待Javascript全部内容,希望文章能够帮你解决HTMLUnit不等待Javascript所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)