2012-02-14 11 views
1

入力テキストフィールドを持つWebページがあります。C#でInternet Explorerを制御する

私は質問は私がフィールドにデータを入力し、フォームを送信することができる方法であるページを起動するために

Process.Start("http://nameofdomain.com") 

をしたいですか?

UPDATE -

私は、ユーザーの任意のページをレンダリング/表示する必要はありません。

この目的は、ユーザーが最小限の労力でパスワードを変更できるようにすることです。私たちの現在の設定が

  1. ユーザーは、イントラネット上のサイトに移動します:
  2. は、ユーザが要求されたWindowsユーザー名(firstName.lastName)、ユーザが入力するように要求され
  3. ます(http // intranetsite /パスワード)現在のパスワードを入力する(またはセキュリティに関する質問に回答する)
  4. ユーザはリンクをクリックするように求められます(パスワードの変更またはセキュリティの質問の変更を選択してください)
  5. 最後のページは、パスワードは正常に変更されました。彼らは私たちのネットワーク上にいくつかのアカウントを持っています。各アカウントには異なるパスワードルールがあります 1つのシステムでは、最後の90個のパスワードに対してパスワードをもう一度繰り返す必要はありません。別のシステムでは、パスワードは正確に8文字でなければなりません。私のアプリケーションは、パスワードのルールが正しいかどうかをチェックします。パスワードの履歴を確認することはできません。したがって、最終ページが必要になるか、HTMLを解析してエラーを示す必要があります。
+0

??? –

+0

Windowsフォームのようなウィンドウアプリケーションで作業している場合は、アプリケーションUIにWebBrowserコントロールを埋め込み、必要なURLに移動してコントロールする方がよいと思います。 Process.Start( "http://nameofdomain.com")を呼び出すと、FireFoxやChromeを開くこともできると考えてください。 –

+2

実際にページを表示する必要はありますか、それとも問題ありませんか?埋め込まれたフォームのHTTPリクエストがページを実際にレンダリングせずに送信される場合 – ramsesoriginal

答えて

1

WatiN @http://watin.org/です。私はセレンを試して、それがスムーズに動作することは決してできませんでした(おそらくそれ以来より良くなっています)。 WatiNのマニュアルは自動テストに向けられていますが、テストコード/ライブラリなしで行うことができ、FirefoxChromeもサポートしています。たとえば、次のように

using WatiN.Core; 
using WatiN.Core.Interfaces; 
using WatiN.Core.Logging; 
using WatiN.Core.DialogHandlers; 

...フィールド

public void SearchForWatiNOnGoogle() 
{ 
    using (var browser = new IE("http://www.google.com")) 
    { 
    browser.TextField(Find.ByName("q")).TypeText("WatiN"); 
    browser.Button(Find.ByName("btnG")).Click(); 
    } 
} 
+0

WaitNを使用するためにクラスをインポートする必要はありますか? –

+0

必要なのは 'WatiN.Core.dll'への参照をあなたのプロジェクトに追加し、ちょうどその答えに追加した' using'指令を追加することだけです。 – Diego

2

SeleniumのようなWebブラウザの自動化ツールを見ると、ブラウザと対話してブラウザを自動化するC#ドライバがあります。