java - HtmlUnit 选择不在表单中的选项

标签 java html-select htmlunit

想要使用 HtmlUnit 选择不在表单内的选项。然后我当然需要检索结果页面。这是我尝试过的:

public String getNewPage() throws Exception {
    try (final WebClient webClient = new WebClient()) {

        webClient.getOptions().setThrowExceptionOnScriptError(false);
        webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
        webClient.getOptions().setPopupBlockerEnabled(true);
        webClient.getOptions().setJavaScriptEnabled(true);

        final HtmlPage page = webClient.getPage(URL);

        HtmlOption option1 = (HtmlOption) page.getElementById("1");
        option1.removeAttribute("selected");
        HtmlOption option5 = (HtmlOption) page.getElementById("5");
        option5.setSelected(true);

        // Some code missing here........

        return newHtmlString;
}

单击选项时页面会自动更新。选择正确选项后如何获取新页面?

最佳答案

我所做的几乎是正确的,但缺少以下内容:

    page.refresh();
    return page.asXml();

然后我遇到了另一个将复选框标记为已选中的问题。这是对我有用的:

    HtmlCheckBoxInput checkbox = (HtmlCheckBoxInput) page.getElementById("cb4");
    checkbox.setAttribute("checked", "checked");
    checkbox.fireEvent(Event.TYPE_CHANGE);
    page.refresh();
    System.out.println(page.asXml());

关于java - HtmlUnit 选择不在表单中的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40008348/

相关文章:

javascript - 等待来自 CasperJS 中选择的 <select> 字段的 AJAX 响应

java - HtmlUnit AJAX 响应是部分 HTML。解析失败

javascript - 在 htmlUnit 中执行 Javascript

java.lang.NoClassDefFoundError : java. rmi.server.UID 是受限类

Java - 几个月和几天?

java - 如何通过复合对象属性查找?

java - 如何在java中使用selenium构建支持从右到左语言(如阿拉伯语)的自动化测试?任何代码示例

html - Angular 8 : Set default selected value for select tag

jquery - 使用 jquery 检查下拉选项选择框的最后一个值

java - 禁止 HtmlUnit Apache 日志记录