взаимодействовать с браузером с помощью C # - PullRequest
3 голосов
/ 21 июля 2009

Я хочу взаимодействовать с окном моего браузера, может быть, IE отлично, если оно работает и в Firefox, используя C #.

Я хочу создать программное обеспечение, которое может автоматически заполнять записи в веб-форме. Раньше был gator, теперь это roboform, где он может автоматически заполнять значения.

У меня действительно есть пользователи, которым удобно работать со старым приложением Windows Forms, поэтому я хочу найти решение, в котором они все еще могут вводить данные в свое приложение Windows, и оно фактически заполняет записи в веб-форме и действует как если запрос был сгенерирован из самого браузера.

Я знаю, что могу объединить обе базы данных, так как это устаревшее приложение, переписать базу данных для приложения Windows - проблема ..

Есть предложения?

Ответы [ 5 ]

4 голосов
/ 21 июля 2009

WatiN разработан, чтобы упростить тестирование веб-приложений из .NET, и может показаться, что это может быть полезно для того, что вы хотите сделать:

Ниже приведен пример Hello world автоматизации веб-тестирования; поиск Google.

[Test] public void
SearchForWatiNOnGoogle() {  using (IE
ie = new IE("http://www.google.com")) 
{  
ie.TextField(Find.ByName("q")).TypeText("WatiN");
ie.Button(Find.ByName("btnG")).Click();
     Assert.IsTrue(ie.ContainsText("WatiN"));
} }

Список функций WatiN

  • Автоматизирует все основные элементы HTML
  • Поиск элементов по нескольким атрибутам
  • Поддержка тестирования веб-сайтов AJAX
  • Поддерживает фреймы (междоменный) и iframes
  • Поддерживает всплывающие диалоги, такие как оповещение, подтверждение, вход в систему и т. Д.
  • Поддерживает диалоги HTML (модальные и немодальные)
  • Работает с Internet Explorer 6, 7, 8 и FireFox 2 и 3
3 голосов
/ 21 июля 2009

Оплачивается как приложение для тестирования, но Selenium RC может использоваться для заполнения форм и довольно прост в настройке. Вы также можете проверить WatiN . Хотя ничего не знаю о том, какие проблемы с безопасностью вы можете увидеть.

1 голос
/ 21 июля 2009

Вы также можете попробовать Selenium , который представляет собой среду тестирования веб-приложений, с которой вы можете программно взаимодействовать с веб-интерфейсом.

0 голосов
/ 21 июля 2009

Если ваши пользователи просто используют приложение через приложение WindForms, то есть какая-то особая причина, по которой вам приходится манипулировать пользовательским интерфейсом существующего веб-браузера, такого как Internet Explorer, а не просто делать необходимые запросы HTTP самостоятельно в вашем приложении WinForms? Вы можете использовать класс WebRequest , установив для свойства Method значение "POST" и записав данные поля в Stream, который можно получить с помощью httpRequest. Метод GetRequestStream ().

0 голосов
/ 21 июля 2009

Если вы используете fiddler , вы можете увидеть, что браузер отправляет обратно на сервер, и, таким образом, вы можете написать код C # для генерации такого же HTTP-запроса .

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

Мне удалось автоматизировать IE с помощью объекта InternetExplorer.Application . Он в основном запускает копию IE и позволяет вам контролировать ее из кода. Несколько лет назад я написал сценарий для поиска дешевого бронирования билетов на поезд для меня на сайте Virgin Trains.

Проблема заключалась в том, что при некоторых установках IE он иногда прекращал выдавать предупреждения безопасности, которые я не мог пропустить автоматически. Похоже, в этом не было ничего общего.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...