htmlunit: вернуть полностью загруженную страницу

Я использую библиотеку HtmlUnit для Java для программного управления веб-сайтами. Я могу'не могу найти работающего решения моей проблемы: как определить, что все вызовы AJAX завершены и вернуть полностью загруженную веб-страницу? Вот'Что я пробовал:

Сначала я создаюWebClient экземпляр и сделать вызов моего методаprocessWebPage(String url, WebClient webClient)

WebClient webClient = null;
    try {
        webClient = new WebClient(BrowserVersion.FIREFOX_3_6);
        webClient.setThrowExceptionOnScriptError(false);
        webClient.setThrowExceptionOnFailingStatusCode(false);
        webClient.setJavaScriptEnabled(true);
        webClient.setAjaxController(new NicelyResynchronizingAjaxController());
    } catch (Exception e) {
        System.out.println("Error");
    }
    HtmlPage currentPage = processWebPage("http://www.example.com", webClient);

И вот мой метод, который должен вернуть полностью загруженную веб-страницу:

private static HtmlPage processWebPage(String url, WebClient webClient) {
    HtmlPage page = null;
    try {
        page = webClient.getPage(url);
    } catch (Exception e) {
        System.out.println("Get page error");
    }
    int z = webClient.waitForBackgroundJavaScript(1000);
    int counter = 1000;
    while (z > 0) {
        counter += 1000;
        z = webClient.waitForBackgroundJavaScript(counter);
        if (z == 0) {
            break;
        }
        synchronized (page) {
            System.out.println("wait");
            try {
                page.wait(500);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
    System.out.println(page.asXml());
    return page;
}

Тотz переменная должна возвращать0 если не осталось JavaScript для загрузки.

Какие-нибудь мысли? Заранее спасибо.

РЕДАКТИРОВАТЬ: Я нашел частично работающее решение моей проблемы, но в этом случае я должен знать, как выглядит страница ответа. Например, если полностью загруженная страница содержит текстполный»Мое решение будет:

HtmlPage page = null;
    int PAGE_RETRY = 10;
    try {
        page = webClient.getPage("http://www.example.com");
    } catch (Exception e) {
        e.printStackTrace();
    }
    for (int i = 0; !page.asXml().contains("complete") && i < PAGE_RETRY; i++) {
        try {
            Thread.sleep(1000 * (i + 1));
            page = webClient.getPage("http://www.example.com");
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

Но каково было бы решение, если бы я нене знаете, как выглядит полностью загруженная страница?

Ответы на вопрос(1)

Ваш ответ на вопрос