2013-02-20 3 views
0

У меня есть простой код HTML-кода, который используется для нажатия кнопки и отправки формы на странице, но она не хочет работать. Это мой код:.HTMLUnit не нажимать кнопку

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

вы пробовали с помощью

webClient.getOptions().setRedirectEnabled(true);