HtmlUnit не ожидает выполнения AJAX - PullRequest
2 голосов
/ 30 января 2012

Я пытаюсь использовать безголовый браузер в .Net, и мне нужно, чтобы он выполнял JavaScript, потому что информация, которую мне нужно прочитать, загружается через AJAX.После некоторых исследований я считаю, что мой лучший вариант - HtmlUnit.Я следовал инструкциям в блоге Стивена Сандерсона http://blog.stevensanderson.com/2010/03/30/using-htmlunit-on-net-for-headless-browser-automation/, в основном это прекрасно работает.Однако, как бы я ни старался, я не могу заставить его ждать загрузки JavaScript.По существу, после выбора чего-либо из окна выбора запускается AJAX-запрос и заполняется другое поле выбора.HtmlUnit никогда не видит новые опции.

Я пробовал комбинации всех примеров в FAQ http://htmlunit.sourceforge.net/faq.html#AJAXDoesNotWork, поэтому я могу только предположить, что это проблема с тем фактом, что он был преобразован для запускав .Net.Я надеюсь, что кто-то имеет некоторый опыт в этом, кто может пролить свет на то, что не так.Мне кажется, что я иду по правильному пути с HtmlUnit, и это было рекомендовано здесь до Существует ли безголовый браузер для .NET (для автоматизированных веб-тестов пользовательского интерфейса)? и безголовый интернет-браузер? но я зашел в тупик.

Так что если у кого-либо есть лучший выбор для браузера заголовков, который поддерживает JavaScript, и идеи, как заставить HtmlUnit ждать JavaScript, или даже просто совето том, как отлаживать это дальше.

Спасибо.

Саймон

1 Ответ

4 голосов
/ 29 марта 2012

Я думаю, вам нужно использовать webClient.waitForBackgroundJavaScript() или webClient.waitForBackgroundJavaScriptStartingBefore().

Вы также можете увидеть эти ссылки, которые могут вам немного помочь.

  1. HTMLUnit не ждет Javascript
  2. HtmlUnitне загружает javascript с внешней ссылкой
  3. htmlunit вопрос javascript
...