Заполнение и отправка html форм на C#
В данной статье хотелось бы рассказать о том, как заполнять поля формы программными методами, а так же как нажимать на кнопку отправки формы. Это может пригодиться для разных задач, не всегда удобно отправлять GET или POST запросы, а проще и удобнее имитировать заполнение и отправку формы. Итак, сегодня попробуем заполнить и отправить форму авторизации в почте Яндекса. Для начала создаем новый проект C# Windows From и помещаем на форму элемент webBrowser, указывая в параметре Url адрес почты Яндекса mail.yandex.ru а так же добавляем 2 кнопки на форму по одной кнопке будет происходить заполнение формы, по второй кнопке будет происходить отправка формы. В результате у вас должна получиться примерно такая форма.
Добавляем событие нажатия кнопки «Заполнить». Средствами браузера, к примеру браузером Google Chrome определяем id полей логина и пароля. В результате получили b-mail-domik-username11 и b-mail-domik-password11. После того как получены id данных полей можно заполнять эти поля по нажатию нашей кнопки. С помощью данного кода реализуем заполнение:
webBrowser1.Document.GetElementById("b-mail-domik-username11").InnerText = "test@yandex.ru"; webBrowser1.Document.GetElementById("b-mail-domik-password11").InnerText = "password";
Компилируем, проверяем видим, что поля заполняются. Теперь нам нужно программными методами нажать на кнопку «Войти», но пытаясь получить id этой кнопки видим, что данный параметр не указан, поэтому мы будем проходиться по всем кнопкам страницы и если находим именно эту, то нажимаем на нее. В обработчик события нажатия кнопки «Отправить» пишем следующий код.
HtmlElementCollection arr = webBrowser1.Document.GetElementsByTagName("input"); foreach (HtmlElement input in arr) { if (input.GetAttribute("type") == "submit" && input.GetAttribute("value") == "Войти") { input.InvokeMember("click"); } }
Таким образом в цикле foreach мы прошлись по всем инпутам нашей страницы и нашли кнопку «Войти», после этого произвели нажатие. Данным способом можно обрабатывать любую форму, находить и заполнять любое поле, все зависит от вашей фантазии и навыков.
Понравилась статья? Жми: | Поделиться в соц. сетях |
А как работать дальше, когда ввел пароль и вошел в ящик? Например, как удалить все прочитанные письма.