DEN
DEN

Reputation: 1893

How to wait for axWebBrowser to finish loading?

I am using axWebBrowser to do some web automation. When the system triggers the NewWindow2 event, it is unable to keep track of an HTML element in the new window. After debugging, I noticed that the axWebBrowser1.ReadyState is equal to ReadyState_Complete although the new window hasn't finished loading.

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

How can I wait for the new window to finish loading so I can detect the HTML element in it?

Upvotes: 1

Views: 1286

Answers (1)

Kamyar
Kamyar

Reputation: 18797

I think you can handle the ProgressChanged event:

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

Take a look the the following questions:
http://www.vbforums.com/showthread.php?t=526871
http://social.msdn.microsoft.com/Forums/en/ieextensiondevelopment/thread/8785ddcc-6f48-410b-8cd4-122b3f2b0e34

Upvotes: 1

Related Questions