Как установить значение для скрытого ввода с помощью Htmlunit? - PullRequest
0 голосов
/ 06 июня 2018

Я не могу установить значение скрытого ввода, используя Htmlunit.Я пытаюсь установить значение HtmlHiddenInput для 3 полей, но это не удается на 2-й time(ward).После установки значения для 1-го ввода, вызовы ajax происходят без изменения URL, и он устанавливает список значений в следующем раскрывающемся списке, где я не могу выбрать значение.

WebClient webClient = new WebClient(BrowserVersion.FIREFOX_38);
webClient.getOptions().setJavaScriptEnabled(false);
webClient.getOptions().setCssEnabled(true);
webClient.getOptions().setRedirectEnabled(true);
webClient.getOptions().setUseInsecureSSL(true);
webClient.getOptions().setTimeout(100000);
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
webClient.setAjaxController(new NicelyResynchronizingAjaxController());
webClient.getCookieManager().setCookiesEnabled(true);
webClient.setAjaxController(new NicelyResynchronizingAjaxController());
webClient.waitForBackgroundJavaScript(120000);
webClient.getCookieManager().setCookiesEnabled(true);

//hosp
HtmlHiddenInput hiddenHosp = (HtmlHiddenInput) form1.getInputByName("ctl00_ContentPlaceHolder1_Hospital_ClientState");
String hosp1 ="{\"logEntries\":[],\"value\":\"\",\"text\":\"Royal Marsden1 Royal Marsden NHS Foundation Trust RM CHELSEA\",\"enabled\":true,\"checkedIndices\":[],\"checkedItemsTextOverflows\":false}";
hiddenHosp.setValueAttribute(hosp1);

//ward
HtmlHiddenInput hiddenWard = (HtmlHiddenInput) form1.getInputByName("ctl00_ContentPlaceHolder1_Ward_ClientState");
String ward1="{\"logEntries\":[],\"value\":\"%\",\"text\":\"All\",\"enabled\":true,\"checkedIndices\":[],\"checkedItemsTextOverflows\":false}";
hiddenWard.setValueAttribute(ward1);

//status
HtmlHiddenInput hiddenStatus = (HtmlHiddenInput) form1.getInputByName("ctl00_ContentPlaceHolder1_Status_ClientState");
String status1 = "{\"logEntries\":[],\"value\":\"%\",\"text\":\"All\",\"enabled\":true,\"checkedIndices\":[],\"checkedItemsTextOverflows\" :false}";
hiddenStatus.setValueAttribute(status1);

Снимок экрана: Screenshot

1 Ответ

0 голосов
/ 06 июня 2018

И снова ... waitForBackgroundScrip () не вариант.Вы должны вызвать его, например, после установки ввода.

У вас отключена поддержка Javascript, но без Javascript Ajax не будет работать вообще.Обычно нет необходимости изменять какие-либо параметры по умолчанию.Измените их, только если у вас возникли проблемы, и вы знаете, что делаете.

И, наконец, добавьте хотя бы версию, которую вы используете, к вопросу.

...