Невозможно получить элемент с id="parcelMailingAddressResult"
из https://www.mohavecounty.us/ContentPage.aspx?id=111&cid=869&parcel=10272001
, используя HTMLUnit
в Java
Если вы перейдете по указанному выше URL-адресу, вы увидите, что существует почтовый адрес.Проверка сайта DOM показывает, что адрес имеет вышеуказанный идентификатор.В течение нескольких дней я пытался получить этот почтовый адрес, используя мой Java / HTMLUnit, и ни одна из моих попыток не сработала.
Ниже приведены три метода, которые я пробовал в одном и том же коде.
System.getProperties().put("org.apache.commons.logging.simplelog.defaultlog", "fatal");
final WebClient webClient = new WebClient();
webClient.getOptions().setCssEnabled(false);
webClient.getOptions().setJavaScriptEnabled(false);
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.setRefreshHandler(new RefreshHandler() {
public void handleRefresh(Page page, URL url, int arg) throws IOException {
System.out.println("handleRefresh");
}
});
HtmlPage page = (HtmlPage) webClient.getPage("https://www.mohavecounty.us/ContentPage.aspx?id=111&cid=869&parcel=10272001");
DomElement ownerAddresses = page.getElementById("parcelMailingAddressResult");
NodeList nodes = page.getElementsByTagName("parcelMailingAddressResult");
final HtmlDivision div = (HtmlDivision) page.getByXPath("//div[@class='container-fluid row']").get(0);
Я ожидал, что переменные ownderAddresses
и узлы будут содержать информацию, включающую адрес владельца.Я ожидаю, что div
будет содержать некоторую другую информацию и, как только я изменил get(0)
на get(<someHigherInteger>)
, также будет содержать информацию об адресе владельца.
Вместо:
ownerAddresses = null
(после выполнения ownerAddress = ...) - узлов имеет размер 0 (после выполнения узлов = ...)
final HtmlDivision div = (HtmlDivision) page.getByXPath("//div[@class='container-fluid row']").get(0);
примерно через 13 секунд выдает следующее исключение:
Исключение:
java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0
.
, что означает, что (HtmlDivision) page.getByXPath("//div[@class='container-fluid row']")
имеет длину0.