Взаимодействие с веб-страницами в C # - PullRequest
7 голосов
/ 26 января 2012

Существует веб-сайт, созданный с использованием ColdFusion (не уверен, имеет ли это значение или нет).Мне нужно взаимодействовать с этим веб-сайтом.Главное, что мне нужно сделать, это перейти на разные страницы и нажимать кнопки.

У меня есть две идеи, как это сделать.Первый заключается в использовании элемента управления WebBrowser.При этом я, безусловно, мог бы перемещаться по страницам и нажимать кнопки (в соответствии с This ).

Другой способ - напрямую взаимодействовать с html.Не уверен, как именно это сделать, но я предполагаю, что я мог бы нажимать кнопки или использовать запросы HTML для взаимодействия со страницей.

У кого-нибудь есть рекомендации, какой путь лучше?Есть ли лучший способ, о котором я не думал?

Ответы [ 4 ]

7 голосов
/ 26 января 2012

Я бы использовал Html AgilityPack для анализа html, а затем соответственно выполнял POST и GET с HttpWebRequest .

Хотя можно использовать элемент управления WebBrowser для имитации щелчков и навигации, вы получаете больший контроль с помощью Html AgilityPack и HttpWebRequest в отношении того, что отправляется

3 голосов
/ 26 января 2012

Вы рассматривали Селен ? API WebDriver достаточно хорош и позволяет многое с точки зрения автоматизации веб-сайтов.

2 голосов
/ 26 января 2012

HtmlAguilityPack полезен для простого извлечения веб-элементов и поиска тегов.Если вам нужно удаленно управлять веб-сессией, я предпочитаю использовать WatiN .Он объявляет себя платформой для тестирования веб-модулей, но очень полезен в любое время, когда вам нужно подделать раздел браузера.Кроме того, он может удаленно управлять различными браузерами для большинства задач, которые вам понадобятся (например, найти кнопку и нажать ее, или текстовое поле и заполнить текст, если вам нужен логин).

1 голос
/ 26 января 2012

почему бы не отправить непосредственно URL? это то, что будет делать нажатие кнопки. используя WebRequest.Create , вы можете отправить его непосредственно на URL. нет необходимости загружать, анализировать и «нажимать» кнопку.

...