Как дождаться окончания загрузки axWebBrowser? - PullRequest
1 голос
/ 17 марта 2011

Я использую 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 Ответ

1 голос
/ 17 марта 2011

Я думаю, вы можете обработать событие 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

...