1

Java を介して HTTP フォームのテキスト フィールドに入力し、Java を介して送信ボタンをクリックして、フォームの送信後に返されるドキュメントのページ ソースを取得したいと考えています。HTTPリクエストを直接送信することでこれを行うことができますが、この方法では行いません。

4

3 に答える 3

8

私は通常、HtmlUnitを使用してそれを行います。彼らのページに例があります:

@Test
public void submittingForm() throws Exception {
    final WebClient webClient = new WebClient();

    // Get the first page
    final HtmlPage page1 = webClient.getPage("http://some_url");

    // Get the form that we are dealing with and within that form, 
    // find the submit button and the field that we want to change.
    final HtmlForm form = page1.getFormByName("myform");

    final HtmlSubmitInput button = form.getInputByName("submitbutton");
    final HtmlTextInput textField = form.getInputByName("userid");

    // Change the value of the text field
    textField.setValueAttribute("root");

    // Now submit the form by clicking the button and get back the second page.
    final HtmlPage page2 = button.click();
}

そして、あなたはここでもっと読むことができます.

于 2009-09-05T11:22:06.987 に答える
3

HTTPを直接話したくない場合(なぜ?)、Watijを見てください。

これにより、Javaプロセス内でCOMコントロールとしてブラウザ(IE)を呼び出したり、ドキュメントIDなどを使用してページ要素をナビゲートしたり、フォームに入力したり、ボタンを押したりすることができます。ブラウザを実行しているため、Javascriptは通常どおり実行されます(これを手動で実行している場合と同様)。

于 2009-09-05T11:41:56.477 に答える
0

直接要求を送信する以外の唯一の方法は、ブラウザーとのインターフェースを持つことであるため、おそらく Java アプレットを作成する必要があります。

もちろん、これを機能させるには、ページにアプレットを埋め込む必要があります。ページを制御しない場合、これは実行できません。ページを制御する場合は、はるかに面倒で困難な Java アプレットを使用する代わりに、Javascript を使用することもできます。

明確にするために、HTTP リクエストを作成する際に発生している問題は何ですか?なぜ別の方法を使用したいのですか?

于 2009-09-05T11:19:22.717 に答える