有一个框架,内容由javascript加载。
<iframe ... onload="pageLoaded();">
QTP测试需要等到它完成加载。帧内容可能因用户设置而异,因此不能选择检查帧中元素的存在性。
有没有办法在QTP中等待所有内容加载而不试图检查是否存在某些元素?
答案 0 :(得分:1)
有几种方法:
最简单的一个,在页面对象上使用隐藏同步方法:
oPage.sync ' Where oPage is your page object
如果这不起作用,您可以获取浏览器对象的wait属性:
if oBrowser.WaitProperty("state", micRegExpMatch("4|complete"), 60 * 1000) then
msgbox "Browser is ready!"
else
msgbox "Even after 1 minute, the browser is not ready :("
end if
或者您可以获取状态栏,文本并查看其中是否有“等待”文本(仅限IE)
Set oStatusBar = Browser("micclass:=Browser").WinStatusBar("nativeclass:=msctls_statusbar32")
Do : Loop Until instr(oStatusBar.GetROProperty("text"), "Waiting") = 0
或进度条:
Set oProgressBar = Browser("micclass:=Browser").WinObject("nativeclass:=msctls_progress32")
Do : Loop Until oProgressBar.getROproperty("visible")
(代码简化。如您所知QTP,您必须在访问对象和属性之前检查它们是否存在。)