HtmlUnitは、プログラムでWebフォームに入力して送信できる素晴らしいJavaライブラリです。私は現在、ASPで記述されたかなり古いシステムを維持しており、必要に応じてこの1つのWebフォームに毎月手動で入力するのではなく、タスク全体を自動化する方法を模索しています。それを忘れて。1か月以内に収集されたデータを取得するためのフォームです。これまでにコーディングしたものは次のとおりです。
WebClient client = new WebClient();
HtmlPage page = client.getPage("http://urlOfTheWebsite.com/search.aspx");
HtmlForm form = page.getFormByName("aspnetForm");
HtmlSelect frMonth = form.getSelectByName("ctl00$cphContent$ddlStartMonth");
HtmlSelect frDay = form.getSelectByName("ctl00$cphContent$ddlStartDay");
HtmlSelect frYear = form.getSelectByName("ctl00$cphContent$ddlStartYear");
HtmlSelect toMonth = form.getSelectByName("ctl00$cphContent$ddlEndMonth");
HtmlSelect toDay = form.getSelectByName("ctl00$cphContent$ddlEndDay");
HtmlSelect toYear = form.getSelectByName("ctl00$cphContent$ddlEndYear");
HtmlCheckBoxInput games = form.getInputByName("ctl00$cphContent$chkListLottoGame$0");
HtmlSubmitInput submit = form.getInputByName("ctl00$cphContent$btnSearch");
frMonth.setSelectedAttribute("1", true);
frDay.setSelectedAttribute("1", true);
frYear.setSelectedAttribute("2012", true);
toMonth.setSelectedAttribute("1", true);
toDay.setSelectedAttribute("31", true);
toYear.setSelectedAttribute("2012", true);
games.setChecked(true);
submit.click();
の後click()
で、検索結果を表示するテーブルがどこかにあるため、まったく同じWebページの再読み込みが完了するのを待つことになっています。次に、ページの読み込みが完了したら、データをスクレイプして合計を計算するため、HTMLファイルとしてダウンロードする必要があります(お気に入りのブラウザの[名前を付けてページを保存...]とよく似ています)。Jsoupライブラリを使用してすでにそれを行っています。
私の質問は次のとおりです。1。WebページのHtmlUnitへのロードが完了するのをプログラムで待つにはどうすればよいですか。2.結果のWebページをHTMLファイルとしてプログラムでダウンロードするにはどうすればよいですか?
すでにHtmlUnitのドキュメントを調べましたが、必要なことを実行するクラスが見つかりませんでした。