【问题标题】:WebBrowser control and ready stateWebBrowser 控件和就绪状态
【发布时间】:2009-09-10 18:02:52
【问题描述】:

我正在使用网络浏览器控件登录网站。

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 控件的就绪状态变得完整,甚至在我登录到网站之前,下一行代码被执行并导致错误,因为我没有登录。

WbBrowser.Navigate("http://www.foo.com/page2.php")

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

【问题讨论】:

  • 这是用于 NUnit 可以处理的 QA 工作,还是用于需要打开链接的控制台应用程序?
  • 这是我的个人项目。它不是控制台应用程序。

标签: .net vb.net webbrowser-control


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    加油!我刚刚在这里回答了一个类似的帖子,要执行这个确切的程序,请看一下: How to wait until WebBrowser is completely loaded in VB.NET?

    【讨论】:

      猜你喜欢
      • 2021-07-10
      • 1970-01-01
      • 2012-12-14
      • 1970-01-01
      • 2015-08-21
      • 2011-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多