Ваш код выглядит действительно отчаянным, обычно лучше попытаться понять, что происходит, чем скопировать каждый фрагмент кода, который вы можете найти в своем коде, и надеяться, что это поможет.
Хорошей отправной точкой является понять, как работает страница. Используйте хороший веб-прокси, такой как Charles (или Fiddler), чтобы отслеживать, что происходит, когда вы открываете страницу в браузере. К сожалению, я не могу открыть ваш URL, потому что мой сервер отчетов браузера не найден. Из-за этого остальная часть этого ответа является скорее догадкой ....
Следующим шагом является создание вашего веб-клиента и попытка жить с настройками по умолчанию.
WebClient webClient = new WebClient();
webClient.getOptions().setThrowExceptionOnScriptError(false);
С эти две линии ваш клиент готов. По крайней мере, установка RefreshHandler полностью нарушает обработку refre sh дел.
Следующим шагом является проверка выходных данных после того, как вы получили страницу, и сравнение с сеансом браузера / веб-прокси.
HtmlPage page = (HtmlPage) webClient.getPage("https://eagletw.mohavecounty.us/treasurer/treasurerweb/search.jsp");
System.out.println(page.asXML());
Нет, вы можете проверить, есть ли форма (в выходных данных) или нет. Если нет, вы должны выяснить с прокси-сервером, есть ли какая-либо перегрузка фона js. Обычно вы будете видеть запросы в своем прокси-выводе.
Чтобы дождаться этого, вы можете вызвать что-то вроде
webClient.waitForBackgroundJavaScriptStartingBefore(100_000);
Иногда эти фоновые задания заменяют содержимое текущего окна. Чтобы позаботиться об этом, неплохо бы получить содержимое текущей страницы из окна перед выводом.
page = page.getEnclosingWindow(getEnclosedPage());
System.out.println(page.asXML());
Надеюсь, это немного прояснит ситуацию. Если вам нужна дополнительная помощь, мне нужен сам доступ к странице. Иначе это только догадки.