2012-04-14 7 views
0

利用可能なHTMLソースの特定のサイトのWebフォームを記入する必要があります。このフォームのフィールドにデータベースレコードを入力したいと思います。私はアプリケーションのユーザーが最初に満たされたデータを確認し、手動でフォームを送信するので、サーバーに要求をPOSTしたくありません。Javaを使用してWebフォームを記入する方法(提出するのではなく、データベースのフィールドを入力したい)

私はこれを達成するための方法はありますか?私はすでにVB .NETでこれを達成しましたが、すでにJavaで開発されたより大きなアプリケーションの一部として組み込み、ビジネスロジックを実装したいと考えています。

お手数をおかけしますようお願い申し上げます。

おかげで、 SRA

Javaは、サーバー上で実行されていることになる
+2

は、あなたがこれまでにしようとしているコードを表示し、あなたがそれに遭遇する困難を説明します。 –

+0

私はこれまでどんなコードも試していません。私は出発点も得られていない。セレンについて読むことはできますが、それでも他の方法が役立つでしょう。 – sra

+1

この質問は十分な文脈を与えていません。このJavaの実行をサポートする場所はどこですか?ユーザのウェブブラウザまたはサーバ上で? –

答えて

0

この場合、データベースの値があらかじめ埋め込まれた<input>要素でHTMLを生成するようにサーバーを変更するだけです。例えばvalue属性を使用します。セレクタの選択肢があらかじめ選択されていることを確認する必要があるセレクタにとって、少し複雑です。

+0

申し訳ありませんが、私はあなたの文脈を誤解しました。私はクライアントの代わりにサーバーから直接ではなくWebフォームを埋めたいと思う。再度申し訳ありません。もう一度適切な解決策を教えてくれますか?返信いただきありがとうございます。 – sra

0

したがって、DBにアクセスする必要があります。また、クライアント側からWebフォームを入力する必要があります。 Seleniumを使用する場合は、このシナリオになります。

ユーザーがプログラムを起動します。プログラムはブラウザウィンドウを開き、ログインしてフォームを埋めます。ユーザーはデータをチェックし、「送信」ボタンを押します。ブラウザウィンドウはプログラムによって自動的に閉じられます(潜在的にブラウザウィンドウを開いたままにすることは可能ですが、リソースをクリーンアップしてプログラムを終了する方がよい)。

コードサンプル:

public static void main(String[] args) throws InterruptedException { 
    webDriver = new FirefoxDriver(); 

    try { 
     processPage(); 
    } finally { 
     webDriver.quit(); 
    } 
} 

private static void processPage() throws InterruptedException { 
    webDriver.get("http://some_page_url"); 

    // Page element search example 
    List<WebElement> elements = webDriver.findElements(By.xpath(XPATH_STR)); 

    // Fill page here 
} 
+0

おかげでトンVadim ...私はヒットを与え、あなたに知らせるでしょう。 Seleniumの他の力を探求します。 :) もう一度ありがとう。 – sra

関連する問題