Почему код HtmlUnit не совпадает с кодом Chrome? - PullRequest
0 голосов
/ 16 февраля 2020

Я пытаюсь очистить страницу веб-роутера для поиска подключенных устройств и информации о них. Я написал этот код:

String searchUrl="http://192.168.1.1";
HtmlPage page=client.getPage(searchUrl);
System.out.println(page.asXml());

Проблема в том, что код, возвращаемый HtmlUnit, отличается от кода в Chrome. В HtmlUnit у меня нет раздела кода, в котором перечислены подключенные устройства.

1 Ответ

0 голосов
/ 16 февраля 2020

попробуйте что-то вроде этого

try (final WebClient webClient = new WebClient()) {
    // do not stop at js errors
    webClient.getOptions().setThrowExceptionOnScriptError(false);

    webClient.getPage(searchUrl);
    // now wait for the js starting async (you can play with the timing)
    webClient.waitForBackgroundJavaScript(10000);

    // maybe the page was replaced from the async js
    HtmlPage page = (HtmlPage) webClient.getCurrentWindow().getEnclosedPage();

    System.out.println(page.asXml());
}

Обычно это помогает. Если вы все еще сталкиваетесь с проблемами, вы должны открыть проблему на github (https://github.com/HtmlUnit/htmlunit).

Но имейте в виду, что я могу реально помочь, только если смогу запустить / и отладить ваш код здесь - означает, что ваше веб-приложение должно быть опубликовано c.

...