質問

私はいくつかの自動化作業を行っており、サイトを回避できます。 HTMLフォームに投稿しても大丈夫ですが、今は Ajax フォームという新しい課題に直面しています。

読むべきソースがないので、C#でAjaxフォームをプログラムで入力することが可能かどうか疑問に思っています。現在、非表示のaxWebBrowserを使用しています。

ご協力ありがとうございます。

役に立ちましたか?

解決

はい。ただし、通常のページやAJAXハンドラーページを含むサーバーページへのリクエスト/応答には、別のアプローチを使用することをお勧めします。

C#では、 WebRequest / Firebug を参照してください。Webページを検査して、呼び出しが何であるかを判断できる優れたツールです。どのページとそれらのページが応答するか。 AJAX呼び出しの検査でも非常に優れています。

これは、Webリクエストを行う方法の非常に簡単な例です。

HttpWebRequest wReq = (HttpWebRequest)WebRequest.Create("http://www.mysite.com");

using (HttpWebResponse resp = (HttpWebResponse)wReq.GetResponse())
{
   // NOTE: A better approach would be to use the encoding returned by the server in
   // the Response headers (I'm using UTF 8 for brevity)
   using (StreamReader sr = new StreamReader(resp.GetResponseStream(), Encoding.UTF8))
   {
       string content = sr.ReadToEnd();
       // Do something with the content
   }
}    

POSTもリクエストですが、メソッドが異なります。非常に簡単な投稿を行う方法の例については、このページをご覧ください。 。

編集-Firebugでページの動作を検査する詳細

複製しようとしているページを検査するということは、ツール(Firebug-Firefoxを使用)を使用して、ページとサーバー間の情報の流れを判断することです。

Firebugでは、「Net」を使用してこれを行うことができます。および「コンソール」パネル。 Netパネルには、ページのロード中にブラウザによって実行されたすべてのリクエストが一覧表示されます。一方、「コンソール」ページがロードされた後に行われるページとサーバー間の通信をリストします。ページが読み込まれた後に行われるこれらの通信は、基本的に複製するAJAX呼び出しです(注:これを機能させるには、Firebugでネットワーク監視を有効にする必要があります)

Michael Syncのチュートリアルをご覧ください。Firebugの詳細を確認し、コンソールパネルで実験して詳細を確認してくださいAJAXリクエストについて。

「WebRequest / WebResponseを使用してC#からページの動作を複製する」について-気づかなければならないのは、先ほど言ったように、Javascript AJAX呼び出しはHTTPリクエストに過ぎないということです。これは、JavacriptがWebサーバーに対して「舞台裏」、つまり帯域外で行うHTTPリクエストです。これを複製するには、上記で示したように、通常のGETまたは通常のPOSTを複製することと実際に違いはありません。そして、ここでFirebugが登場します。これを使用すると、Javascriptがリクエストを作成するときにリクエストを表示できます。コンソールパネルを見て、リクエストメッセージがどのように見えるかを確認してください。

その後、上記と同じ手法を使用して、HttpWebRequest / HttpWebResponseを使用してJavascriptと同じタイプのリクエストを作成し、代わりにC#からのみリクエストを行うことができます。

グレッグ、これで答えが少し明確になることを願っていますが、これを超えてFirebugで遊んで、おそらくHTTPプロトコルの仕組みとAJAXがテ

他のヒント

Seleniumの使用を見ましたか。私の知る限り、テストケースはC#で作成できます。Ajax対応のASP.NETサイトをUIテストするために、テスト担当者が以前にテストケースを使用したことがあります

http://seleniumhq.org/

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top