我正在使用webbrowser控件登录网站。
WbBrowser.Navigate("http://www.foo.com/login.php")
加载页面后,我使用以下代码登录
While WbBrowser.ReadyState <> WebBrowserReadyState.Complete
Application.DoEvents()
End While
WbBrowser.Document.GetElementById("user_login").SetAttribute("Value", "username")
WbBrowser.Document.GetElementById("user_pass").SetAttribute("Value", "password")
WbBrowser.Document.Forms("loginform").InvokeMember("submit")
这很好用。成功登录后,我必须导航到另一个页面。仅当登录正确时才会发生这种情况。这里的问题是儿子,因为加载了登录页面,webbrowser控件的readystate变得完整,甚至在我登录网站之前,下一行代码被执行并导致错误,因为我没有登录。
WbBrowser.Navigate("http://www.foo.com/page2.php")
如何让我的应用程序等待登录完成,然后执行上面的代码行。有什么想法吗?
答案 0 :(得分:1)
尝试在变量中跟踪应用程序状态,并使用webbrowser.DocumentCompleted事件来测试是否已通过登录。
答案 1 :(得分:0)
Salvete!我刚刚在这里回答了类似的帖子,为了执行这个确切的程序,请看一下: How to wait until WebBrowser is completely loaded in VB.NET?