HTMLUnit不等待Javascript

前端之家收集整理的这篇文章主要介绍了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());

有任何想法吗…?

解决方法

谢谢你的回应。
我其实应该早点报道,我已经找到了解决方案。
显然,用FF初始化WebClient时:
WebClient webClient = new WebClient(BrowserVersion.FIREFOX_3_6);

它似乎正在工作。当使用默认构造函数初始化WebClient时,它默认使用IE7,我猜FF对Ajax有更好的支持,是推荐使用的模拟器。

原文链接:https://www.f2er.com/html/233615.html

猜你在找的HTML相关文章