Я пытаюсь использовать элемент управления .Net WebBrowser для входа на веб-сайт и сбора некоторых данных для меня. Я также использую ссылку на MSHTML (но мне все равно, подходит ваше решение или нет).
Когда я захожу на «нормальный» сайт - я создаю mshtml.HTMLDocument из .documment веб-браузера. Затем я создаю mshtml.FormElement и mshtml.HTMLInputElement, используя имя нужного текстового поля.
Затем я могу установить значение textBox.
Это выглядит примерно так:
Dim myDoc1 As mshtml.HTMLIFrame = DirectCast(Me.WebBrowser.Document.DomDocument, mshtml.HTMLDocument)
Dim myForm As mshtml.HTMLFormElement = DirectCast(myDoc1.forms.item(0), mshtml.HTMLFormElement)
Dim myUserBox As mshtml.HTMLInputElement = DirectCast(myForm.item("user"), mshtml.HTMLFormElement)
myUserBox.value = UserName
Моя проблема в том, что на некоторых веб-сайтах текстовое поле, которым я должен манипулировать, содержится внутри IFRAME. Примером будет https://servicing.capitalone.com/c1/login.aspx
Если моя программа переходит на этот сайт - она не может найти текстовое поле для имени пользователя - потому что его нет. Существует только тег IFRAME с URL-адресом https://login.capitalone.com/loginweb/login/login.do'
Если я перехожу прямо на страницу login.do - сайт перенаправляет меня на страницу с ошибкой.
Как я могу ввести данные в текстовое поле UserName в этом IFRAME?