我正在尝试使用htmlunit制作我的gwt应用程序的html快照。我的想法是让我的ajax应用程序可以爬行。
不幸的是,我正在获取的页面似乎不完整。当我在普通浏览器中访问页面时,它缺少可查看的内容。我只需要在我的HTML快照文本。
这是我的代码:
public class Browser {
public static void main(String[] args) throws IOException, InterruptedException {
final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_10);
webClient.setJavaScriptEnabled(true);//JS is enabled by default but...
webClient.setAjaxController(new NicelyResynchronizingAjaxController());
HtmlPage page = webClient.getPage("http://meridianbet.com");
int n = webClient.waitForBackgroundJavaScript(30000);
System.out.println("Executing " + n + " JavaSript jobs!");
System.out.println("OUTPUT: " + page.asXml());
webClient.closeAllWindows();
}
}
执行完代码后还有7个未完成的js作业。不管我等多久,乔布斯都不会被处决。
有什么帮助吗?
//我正在使用最新的htmlunit 2.10
最佳答案
我也遇到了类似的问题。你试过使用这样的循环吗:
while (i > 0)
{
i = webClient.waitForBackgroundJavaScript(1000);
if (i == 0)
{
break;
}
synchronized (page)
{
System.out.println("wait");
page.wait(500);
}
}
当我使用这样的循环时,它就坐在那里无限期地说:“等待”。但也许这对你有用。
如果你真的解决了你的问题,一定要把你所做的贴出来,因为我认为这会解决我同样的问题。
我找到了这个问题的代码:HTMLUnit doesn't wait for Javascript
关于ajax - 带有GWT应用程序的HtmlUnit返回不完整的页面,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12367419/