我正在尝试使用 .Net WebBrowser 控件登录网站并为我汇总一些数据。我还使用了对 MSHTML 的引用(但我不在乎您的解决方案是否有效)。
当我访问“普通”网站时 - 我从 webBrowser 的 .documment 创建了一个 mshtml.HTMLDocument。然后我使用我想要的文本框的名称创建一个 mshtml.FormElement 和一个 mshtml.HTMLInputElement。
然后,我可以设置文本框的值。
它看起来像这样:
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 页面 - 网站会将我重定向到错误页面。
如何在该 IFRAME 的用户名文本框中输入数据?