2011-12-07 21 views
0

私は、URIの内容を取得する方法について数多くの例を見てきました。私もHTMLAgilityPackをたくさん使っていました。 私が望むのは、ASP Webサイトのユニットテスト環境を作成することです。プログラムでページを参照するにはどうすればよいですか?

私はBrowserSessionとこのQuestionを見ましたが、プロセスはうまく見えますが、ウェブサイトにログインしていません。私は有名なウェブサイトを多数試しました。

コードをブラウズする方法に関するアイデアはありますか?

+0

ほとんどのブラウザのソース表示機能を使用して表示されるレンダリングされたHTMLについて質問していますか?または、サーバー上でASPコードをブラウズするよう求めていますか? –

+2

あなたは次のようなものを探しているようですね:http://seleniumhq.org/docs/03_webdriver.html –

+0

@jsmarbleレンダリングされたページについて。 – Odys

答えて

2

ウェブページにフォームを送信し、その結果のページの応答HTMLを表示したいと思うようです。

この方法では、フォームのターゲットURLが使用され、parmsディクショナリに指定された名前の引数を含む投稿が送信されます。

以下の方法を使用して、Webページでパスワード認証を行い、認証後に応答を表示しました。リクエストで渡すターゲットURLとフォームフィールドを知る必要があります。

private string SubmitRequest(string url, Dictionary<string, string> parms) 
{ 
    var req = WebRequest.Create(url); 
    req.Method = "POST"; 

    string parmsString = string.Join("&", parms.Select(p => string.Format("{0}={1}", p.Key, p.Value))); 
    req.ContentLength = parmsString.Length; 

    using (StreamWriter writer = new StreamWriter(req.GetRequestStream())) 
    { 
     writer.Write(parmsString); 
     writer.Close(); 
    } 

    var res = req.GetResponse(); 

    using (StreamReader reader = new StreamReader(res.GetResponseStream())) 
    { 
     string response = reader.ReadToEnd(); 
     reader.Close(); 
     return response; 
    } 
} 

もっと具体的なものが必要な場合、またはこれがあなたが探しているものでない場合は、コメントを投稿してください。

+0

私はウェブサイトにログインして閲覧できるようにします。これにはcoockies、隠された入力フィールドなどが必要です。 – Odys

+1

上記の方法を知っている限り、POSTにしたいフォームフィールドを渡すことができるので、Webサイトにログインして出力を読むことができます。その後、私はあなたが実際のWebブラウザを必要としていると思うだろう、その後、サイトをブラウズする。元の質問にはクッキーは記載されていないので、これでどれくらいの距離が得られるかはわかりませんが、少なくともログイン後のランディングページにアクセスする必要があります。 –

関連する問題