2016-12-13 9 views
0

На следующем веб-сайте я пытаюсь получить доступ к логину и паролю формы с HtmlUnit: https://zof.interreport.com/diveport#HtmlUnit не могут найти формы на сайте

Однако это очень простой Javascript возвращает пустой список [].

void homePage() throws Exception{ 

    final WebClient webClient = new WebClient(BrowserVersion.CHROME); 
    final HtmlPage page = webClient.getPage("https://zof.interreport.com/diveport#"); 
    System.out.println(page.getForms()); 
} 

Так как-то HtmlUnit не распознает формы на странице. Как я могу это исправить?

ответ

0

Я не работал на этом API, но здесь это трюк

  1. Открыть одну страницу в браузере, отключив JavaScript. Это не работает.

    • Это означает, что при загрузке страницы содержимое выполняется с использованием каких-либо операций с JavaScript.
    • Если вы не можете получить html здесь, в API, который вы используете, должен быть какой-то выход.
  2. Обратитесь к документации по htmlUnit api. Класс JAVADOC

    • Существует метод

    общественного ScriptResult executeJavaScript (String Исходник-)

Ключевым моментом здесь является, если API вы используете не будет выполнять JavaScript на его выигранных и вам нужно закодировать его.

1

Сначала вы показываете только код Java, но говорите о javascript - есть ли что-то не хватает?

Относительно формы. Страница, которую вы пытаетесь протестировать, - это одна из этих страниц, которая выполняет некоторую работу на стороне клиента. Это означает, что после загрузки страницы реальная страница/dom создается внутри вашего браузера, вызывая javascript. При использовании HtmlUnit вы должны позаботиться об этом. В простых случаях достаточно ждать обработки javacript.

Этот код работает для меня:

final WebClient webClient = new WebClient(BrowserVersion.CHROME); 
    final HtmlPage page = webClient.getPage("https://zof.interreport.com/diveport#"); 
    webClient.waitForBackgroundJavaScriptStartingBefore(5000); 
    System.out.println(page.getForms()); 

Позаботьтесь, чтобы использовать последнюю SNAPSHOT сборку HtmlUnit.

+0

Спасибо! это сработало. Однако найдена только одна форма. Можете ли вы рассказать мне, как получить доступ к полям входа и пароля и кнопке входа в систему? – Diederik

+0

Используйте Firebug для проверки структуры страницы/dom и использования API HtmlUnit (начало здесь: http://htmlunit.sourceforge.net/gettingStarted.html) – RBRi

+0

Ах, вы тоже не знаете. Но все равно спасибо! – Diederik

 Смежные вопросы

  • Нет связанных вопросов^_^