Я пытаюсь получить все изображения, особенно с этого сайта: http://web.archive.org/web/20160110012916/http://habibemaia.com/. Я могу получить почти все, собирая все теги «src» и загружая оттуда, но есть проблемы с основным изображением, которое изменяется на javascript либо с помощью времени, либо на событие клика. Я настроил мой WebClient так:HtmlUnit click() на div не запускает JavaScript
webClient.getOptions().setCssEnabled(true);
webClient.getOptions().setJavaScriptEnabled(true);
webClient.waitForBackgroundJavaScript(15000);
webClient.waitForBackgroundJavaScriptStartingBefore(5000);
webClient.setAjaxController(new NicelyResynchronizingAjaxController());
webClient.getOptions().setUseInsecureSSL(true);
После того как я получил DIV я пытаюсь использовать кнопку, как это:
HtmlPage newPage = div.click();
DomNodeList<DomElement> newImages = newPage.getElementsByTagName("img");
for (DomElement img : newImages) {
if (img.hasAttribute("src")) {
newImagesStrings.add(img.getAttribute("src"));
System.out.println("Image added: "+img.getAttribute("src"));
}
}
Если я нажимаю на этот Див ИНТ браузер, появляется новое изображение. К сожалению, этот код не запускает javascript, который изменяет изображение. Я пробовал использовать
webClient.waitForBackgroundJavaScript(3000);
после щелчка(), как предложено в другом месте, но не повезло. Страница не изменяется. Теперь я полностью из идей. Спасибо за помощь.
Вы правы, что решили. И спасибо за другие советы тоже! – Johnny
Хм, я вижу ссылки на изображения в отладке Chrome, но когда я делаю getPage(), только первое изображение есть, остальные divs пусты. – Johnny
Возможно, потому что в других divs есть дисплей: на них нет стиля? Я бы хотел, чтобы эти divs собирали все div, а не по классу или id. Я использую версию 2.20, которая может быть проблемой? – Johnny