我无法使用Htmlunit
设置隐藏输入的值。我尝试将值设置为3个字段的HtmlHiddenInput
,但在第2个time(ward)
处失败。将值设置为第一个输入后,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);
截图:
答案 0 :(得分:0)
再次...... waitForBackgroundScrip()不是一个选项。你必须打电话给它,例如设置输入后。
您已禁用Javascript支持但没有Javascript Ajax根本无法运行。通常无需更改任何默认选项。只有在遇到问题并且知道自己在做什么时才更改它们。
最后请至少添加您正在使用的版本。