2011-03-17 127 views
1

我正在使用axWebBrowser來做一些網頁自動化。 當系統觸發NewWindow2事件時,它無法跟蹤新窗口中的HTML元素。經過調試,我注意到axWebBrowser1.ReadyState等於ReadyState_Complete,雖然新窗口尚未完成加載。如何等待axWebBrowser完成加載?

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

如何等待新窗口完成加載,以便可以檢測其中的HTML元素?

回答

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

+0

感謝您的回覆快kamyar。您提供的代碼不起作用,因爲我使用的是axWebBrowser(Com組件)... – DEN 2011-03-17 06:01:29

+0

@Den:它似乎是處理DocumentComplete事件標識的標準方式。看看:http://www.experts-exchange.com/Programming/Languages/.NET/Visual_Basic.NET/Q_22598363.html和http://www.vbforums.com/showthread.php?t=557963和http: //www.experts-exchange.com/Programming/Misc/Q_21043365.html – Kamyar 2011-03-17 06:07:08

+0

無法查看它,因爲我沒有訂閱。 – DEN 2011-03-17 06:10:21