HtmlUnit не загружает часть этой страницы:
https://www.milanuncios.com/mis-anuncios/
При проверке в браузере, раздел:
<div class="ma-LayoutBasicMainContent">
Содержит много содержимого, но при загрузке с помощью HtmlUnit оно пустое
Я пробовал различные переключатели webClient, включая
webClient.setAjaxController(new NicelyResynchronizingAjaxController());
webClient.getOptions().setDownloadImages(true);
webClient.getOptions().setCssEnabled(true);
webClient.getOptions().setJavaScriptEnabled(true);
webClient.setJavaScriptTimeout(10000);
Но всегда один и тот же результат. Раздел "ma-LayoutBasicMainContent" не загружен. Это код, который я использую:
import com.gargoylesoftware.htmlunit.NicelyResynchronizingAjaxController;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.*;
class MarnvHtmlUnitTest {
public static void main(String[] args) {
WebClient webClient = null;
try {
final long javascriptTimeout = 10000;
webClient = new WebClient();
webClient.setAjaxController(new NicelyResynchronizingAjaxController());
webClient.getOptions().setDownloadImages(true);
webClient.getOptions().setCssEnabled(true);
webClient.getOptions().setJavaScriptEnabled(true);
webClient.setJavaScriptTimeout(10000);
String loginURL = "https://www.milanuncios.com/mis-anuncios/";
System.out.println("Connecting to " + loginURL + " (" + webClient.getBrowserVersion() + ")");
HtmlPage page = webClient.getPage(loginURL);
System.out.print(" Waiting for Javascript to complete...");
long millis = System.currentTimeMillis();
webClient.waitForBackgroundJavaScript(javascriptTimeout);
System.out.println(System.currentTimeMillis() - millis + " milliseconds");
if (!page.asText().contains("ACCESO A MIS ANUNCIOS")) {
System.out.println("ERROR!");
System.out.println(page.asXml());
System.out.println("EXITING. " + webClient.getWebWindows().size());
return;
}
System.out.println("OK");
} catch (Exception e) {
e.printStackTrace();
}
finally {
if (webClient != null)
webClient.close();
}
}
}
В случае правильной загрузки страницы, страница должна содержать текст «ACCESO A MIS ANUNCIOS».
Обратите внимание, что waitForBackgroundJavaScript возвращает сразу, что для меня странно ... обычно несколько секунд ждет, пока страница полностью не загрузится. Я использую HtmlUnit 2.35.0