本文共 1310 字,大约阅读时间需要 4 分钟。
方法一:
Set ie=CreateObject("InternetExplorer.Application")
Do Until Not ie.Busy And ie.ReadyState = 4/READYSTATE_COMPLETE
这种方式有时候也不行。
有时候IE进度条在含有框架的页面里面,已经加载完成的页面,进度条却还在跑,所以你这样判断可能会有问题。我写过一个函数,是通过判断进度条前面的提示字符来判断的,还没完善,看是否能满足你的需要。
Function IE_WaitUntilLoadFinish(sec_time) 'IE等待状态栏提示完成,直到超过指定时间 loadFinish="no" For i=1 To sec_time '等待指定时间 ieHint=Browser("title:=XXXXXX").WinStatusBar("regexpwndclass:=msctls_statusbar32").GetRoproperty("regexpwndtitle") If RegExpTest("正在打开网页",ieHint)>0 Then wait(1) ElseIf ieHint="网页上有错误" Then ElseIf ieHint="完毕" Then loadFinish="yes" Exit For End If Next IE_WaitUntilLoadFinish=loadFinish If loadFinish="no" Then captureFileName=ErrorCapture("系统加载过慢") 'ErrorCapture是自定义的全屏捕捉函数 Reporter.ReportEvent micFail,"系统加载过慢,详见截图"&captureFileName&"","错误" End If End Function RegExpTest这个函数是我修改帮助里面的同名函数而来,代码如下 Function RegExpTest(patrn, strng) '返回匹配要求的字符串数量 Dim regEx, Match, Matches ' Create variable. Set regEx = New RegExp ' Create regular expression. regEx.Pattern = patrn ' Set pattern. regEx.IgnoreCase = True ' Set case insensitivity. regEx.Global = True ' Set global applicability. Set Matches = regEx.Execute(strng) ' Execute search. RegExpTest = Matches.Count End Function本文转自hcy's workbench博客园博客,原文链接:http://www.cnblogs.com/alterhu/archive/2012/04/19/2458606.html,如需转载请自行联系原作者。