代码之家  ›  专栏  ›  技术社区  ›  Shoban

WebBrowser控件和就绪状态

  •  0
  • Shoban  · 技术社区  · 15 年前

    我正在使用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")
    

    如何让我的应用程序等待登录完成,然后执行上面的代码行。有什么想法吗?

    2 回复  |  直到 13 年前
        1
  •  1
  •   invert    15 年前

    尝试跟踪变量中的应用程序状态,并使用webrowser.documentCompleted事件测试登录是否通过。

        2
  •  0
  •   Community CDub    8 年前

    萨维特!我刚刚在这里回复了一个类似的帖子,要执行这个精确的过程,请看一下: How to wait until WebBrowser is completely loaded in VB.NET?

    推荐文章