如何等待axWebBrowser完成加载?

时间:2011-03-17 05:42:31

标签: c# webforms axwebbrowser

我正在使用axWebBrowser来进行一些网络自动化。 当系统触发NewWindow2事件时,它无法在新窗口中跟踪HTML元素。调试后,我注意到axWebBrowser1.ReadyState等于ReadyState_Complete,尽管新窗口尚未完成加载。

private void axWebBrowser1_DocumentComplete(object sender, AxSHDocVw.DWebBrowserEvents2_DocumentCompleteEvent e) {            
    if (axWebBrowser1.ReadyState == SHDocVw.tagREADYSTATE.READYSTATE_COMPLETE) {
        // some code...
    }
}

如何等待新窗口完成加载,以便我可以检测到其中的HTML元素?

1 个答案:

答案 0 :(得分:1)

我认为您可以处理ProgressChanged事件:

private void webBrowser_ProgressChanged(object sender, WebBrowserProgressChangedEventArgs e)  
{  
  siteLoading.Value = (int)e.CurrentProgress;
  if (e.CurrentProgress >= e.MaximumProgress)
  {
    // Loaded.
  }
}  

看看以下问题:
http://www.vbforums.com/showthread.php?t=526871
http://social.msdn.microsoft.com/Forums/en/ieextensiondevelopment/thread/8785ddcc-6f48-410b-8cd4-122b3f2b0e34