Как дождаться завершения загрузки 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?


person DEN    schedule 17.03.2011    source источник


Ответы (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

person Kamyar    schedule 17.03.2011
comment
спасибо за ваш быстрый ответ kamyar. Предоставленный вами код не работает, потому что я использую axWebBrowser (компонент Com)... - person DEN; 17.03.2011
comment
@Den: похоже, что идентификатор события DocumentComplete обрабатывается стандартным способом. посмотрите: experts-exchange.com/Programming/ Языки/.NET/ и vbforums.com/showthread.php?t= 557963 и experts-exchange.com/Programming/Misc/Q_21043365. html - person Kamyar; 17.03.2011
comment
Погуглите адрес, перейдите в конец страницы, увидите результат. - person Kamyar; 17.03.2011
comment
Попробуйте эту ссылку: google.com/ вы можете просмотреть сейчас? - person Kamyar; 17.03.2011
comment
Хм. странный. Вы пролистали до самого низа? он показывает вам сообщение о подписке, но вы можете увидеть результат в конце. - person Kamyar; 17.03.2011
comment
То, что я увидел после того, как прокрутил до самого низа, — это сообщение, оставленное VBRocks и Kanus. Ответ VBRocks у меня не работает. Он работает только для WebBrowser, но не для AxWebBrowser. Я столкнулся с проблемой axWebBrowser1.ReadyState равно ReadyState_Complete, хотя AxWebbrowser не завершил загрузку. Поэтому ищу другое решение. Камьяр, ты хоть представляешь? - person DEN; 17.03.2011