Проверка двоичного содержимого с помощью WatiN - PullRequest
1 голос
/ 15 декабря 2010

Я тестирую сайт, который обслуживает некоторый двоичный (т.е. не HTML) контент.Некоторые ссылки напрямую доставляют пользовательские изображения, другие - пользовательские PDF.

Я создаю контрольные примеры в WatiN и NUnit.Интересно, есть ли способ, используя WatiN, чтобы загрузить страницу, а затем получить содержимое этой страницы в байтах [].

В настоящее время я просто запускаю WebClient для получения содержимого, а не через WatiNно это более непроверенный код в моем наборе тестов.

Кто-нибудь еще делает это и есть предложения?

1 Ответ

1 голос
/ 15 декабря 2010

Возможно, будет проще пропустить Watin и использовать HttpWebRequest для получения контента прямо из C # (в вашем тесте или в библиотеке тестов).

K Скотт Аллен имеет пост в блоге о получении двоичных данных с использованием HttpWebrequest здесь: http://odetocode.com/Blogs/scott/archive/2004/10/05/webrequest-and-binary-data.aspx

Если вы заранее не знаете цель ссылки (например, динамически сгенерированные URL-адреса), используйте Watin для получения ссылки, а затем HttpWebRequest для получения содержимого.

Цитата из K сообщения в блоге Скотта Аллена выше, вы должны получить байт [], который вы ищете

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();
      }
   }
}
...