C # Как открыть веб-страницу, идентифицировать элемент, ввести данные и ждать следующей страницы? - PullRequest
0 голосов
/ 06 марта 2019

Этот вопрос, вероятно, существует в разных формах, но мне нужно было бы объяснить мне, как выполнить следующее ...

Я работаю над приложением форм Windows (C #).Когда я нажимаю на кнопку в форме, я хочу перейти на определенную страницу (все в коде позади), найти ввод [type = text] на этой странице по идентификатору или классу, ввести пароль и нажать кнопку входа далеена вход.

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

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

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

Заранее спасибо!

1 Ответ

0 голосов
/ 06 марта 2019

Вам не нужно очищать веб-сайт и находить ввод type=text.Формы работают с GET или POST запросами.Форма входа, как правило, POST запрос к серверу, вы должны найти форму внутри этой страницы и посмотреть, куда она указывает действие.Допустим, это сделано следующим образом:

<form action="login.php" method="post">

Итак, вы знаете, что login.php обработает запрос и что он использует метод post.

Теперь вам нужно написать несколько C# код для отправки POST запроса на http://yoururl.com/login.php (см. HttpWebRequest).

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

Чтобы выполнить эту часть, вам нужно взглянуть на HttpWebRequest.CookieContainer.

После того, как вы получите свои куки, вы должны отправить запрос GET на следующую страницу, где вы можете затем собрать необходимую информацию.GET запрос на веб-страницу отправляет вам всю HTML-страницу в качестве ответа.Затем вы должны использовать очищающую библиотеку, такую ​​как HttpAgilityPack, чтобы получить нужную таблицу.

Попробуйте написать какой-нибудь код и вернуться, когда столкнетесь с проблемой, открывая другой вопрос.Я надеюсь, что предоставил вам некоторую полезную информацию!

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