HTMLUnit没有单击按钮

时间:2013-02-20 03:36:03

标签: java htmlunit

我有一个简单的HTML单元代码,用于按下按钮并在页面上提交表单,但它不想工作。这是我的代码:

    public static boolean sub(String ref, String zip) throws Exception {
WebClient webClient = new WebClient(BrowserVersion.FIREFOX_3_6);
webClient.getOptions().setRedirectEnabled(true);
webClient.getOptions().setJavaScriptEnabled(true);
webClient.getCookieManager().setCookiesEnabled(true);

    final HtmlPage page1 = webClient.getPage("http://site.com/");
    webClient.waitForBackgroundJavaScript(20000);


    final HtmlButton button = page1.getFirstByXPath("//*[@id=\"lookup\"]");
    final HtmlTextInput orderField = page1.getFirstByXPath("//*[@id=\"order-number\"]");
    final HtmlTextInput zipField = page1.getFirstByXPath("//*[@id=\"order-user-info\"]");

    orderField.setValueAttribute(ref);
    zipField.setValueAttribute(zip);
    final HtmlPage page2 = button.click();
        webClient.waitForBackgroundJavaScript(20000);

    System.out.println(page2.asText());
    webClient.closeAllWindows();
    return true;
}

所有这一切都打印出第一页的文本,但填写了文本框。正如您所看到的,我尝试等待javascript,它仍然无法正常工作。任何帮助表示赞赏。

更新:我发现了一些新信息。看来,当我输入一个正确的订单号时,它只显示填写了文本框的当前页面,而不是重定向到的页面,但是当我输入错误信息时,它显示当前页面填写的文本框和“错误信息”错误消息。看起来这只是没有重定向......

1 个答案:

答案 0 :(得分:1)

你尝试过使用

吗?
webClient.getOptions().setRedirectEnabled(true);