ボタンを押してページ上のフォームを送信するために使用される単純な 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;
}
これは、最初のページのテキストを印刷するだけですが、テキスト ボックスは入力されています。どんな助けでも大歓迎です。
更新: 新しい情報で見つけました。正しい注文番号を入力すると、リダイレクト先のページではなく、テキストボックスが入力された現在のページが表示されるだけのようですが、間違った情報を入力すると、現在のページが入力されたテキスト ボックスと、「間違った情報」エラー メッセージ。これはリダイレクトされていないようです...