在vb.net中,我已成功使用此方法登录安全网站。
webBrowser.Document.GetElementById("username").SetAttribute("value", "me@email.com")
webBrowser.Document.GetElementById("password").SetAttribute("value", "my_pw")
webBrowswer.Document.Forms(0).InvokeMember("submit")
安全网站返回一个HTML页面,该页面在webBrowser控件中正确显示,控件将传回给用户。
用户单击表单上的一个按钮(表单的一部分,位于浏览器窗口上方),这会导致应用程序根据该页面上的信息执行某些命令。
此网页在页面底部有控件,允许用户从网站检索另一个页面。控件是页码和提交按钮。
我希望让应用程序为他执行此操作,而不是要求用户找到这些表单控件并从一个页面转到另一个页面。
问题是新页面(例如第2页)实际上并没有在webBrowser窗口中加载。因此,webBrowser.document不会改变。
随之而来的是无限循环。但是,如果我允许程序将控制权返回给用户并强制他移动到下一页,则webBrowser.document将重新加载新页面的内容
那么,点击这些导航(“下一页”)控制与手动还是编程控制有何不同?
dim sUrl as string = "https://www.example.com/with_parameters"
webBrowser.Navigate(sUrl)
sNewPage = webBrowser.DocumentText
以下是用于移至下一页的代码:
webBrowser.Document.GetElementById("gotopage").Focus()
webBrowser.Document.GetElementById("gotopage").SetAttribute("Value", iNextPage)
webBrowser.Document.GetElementById("gotopage-button).InvokeMember("click")
sNewPage = webBrowser.DocumentText
此webBrowser.DocumentText未加载新页面的内容。 我该怎么做才能强制它包含新页面的内容?
感谢您的帮助!