2011-03-17 125 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