2010-12-14 6 views
1

バイナリ(HTML以外)のコンテンツを扱うサイトをテストしています。一部のリンクはカスタム画像を直接配信し、他のリンクはカスタムPDFをリンクします。WatiNでバイナリコンテンツを確認する

WatiNとNUnitでテストケースを構築しています。ウォッチンを使ってページをロードしてから、そのページのバイト[]の内容を取得する方法があれば気になります。

現在、WatiNではなくWebClientを起動してコンテンツを取得していますが、これはテストスイートでは未テストのコードです。

これを行う他に提案がありますか?

答えて

1

WatinをスキップしてHttpWebRequestを使用して、C#(テスト中またはテストライブラリ内)から直接コンテンツを取得する方が簡単かもしれません。

Kスコット・アレンが、ここでは、HttpWebRequestを使用してバイナリデータを取得する上でブログの記事があります。http://odetocode.com/Blogs/scott/archive/2004/10/05/webrequest-and-binary-data.aspx

あなたが(例えば、動的に生成されたURL)事前にリンク先がわからない場合は、リンクを取得するためにWatinを使用、次にHttpWebRequestを使用してコンテンツを取得します。上記K Scott Allen's blog postから

引用、あなたに私がやっている、基本的です[]あなたは

byte[] result; 
byte[] buffer = new byte[4096]; 

WebRequest wr = WebRequest.Create(someUrl); 

using(WebResponse response = wr.GetResponse()) 
{ 
    using(Stream responseStream = response.GetResponseStream()) 
    { 
     using(MemoryStream memoryStream = new MemoryStream()) 
     { 
     int count = 0; 
     do 
     { 
      count = responseStream.Read(buffer, 0, buffer.Length); 
      memoryStream.Write(buffer, 0, count); 
     } while(count != 0); 
     result = memoryStream.ToArray(); 
     } 
    } 
} 
+0

後にしているバイトを取得する必要があります。私はWebRequestではなくWebClientを使用しましたが。 WatiNにこれが何かあるかどうか疑問に思っています。私はそれを頻繁にやっていることが分かりました。 – jwadsack

+0

ソリューションが組み込まれていないようですが、これを正解としています。 – jwadsack

関連する問題