y= Browser("Wtap2.0").Page("DataManagePage").Frame("ImportDateFrame").Link("请点击下载日志文件").WaitProperty("visible",True,50000)
if y = true then
Browser("Wtap2.0").Page("DataManagePage").Frame("ImportDateFrame").WebElement("关闭").Click
else
msgbox("导入时间过长")
endif
1.
等待时间的艺术
对象是否出现不明确或者应用系统响应时间不确定的时候,我们往往采取Wait的方法,而且这个时间是不确定,所以一般初学者会考虑使用最大时间值(系统最慢的情形)。其实完全没有必要等这么长时间,而且如果系统忽快忽慢怎么办?总不能每次“跑脚本”之前都去修改一次吧,这样脚本少还可以,脚本多(一个或多个测试集往往牵涉到几十上百个测试脚本)了呢?这样的话,脚本维护的代价太昂贵了!
这种情况下可以考虑写一些循环语句代替wait语句,这些语句写得合理的话,会在系统响应的第一时间做下一步操作,而长时间无响应就可以通过跳出条件来终止运行,报告系统连接超时就可以了。因为这种速度的系统版本客户是不会要的,一般情况下这种测试是没有意义的。
下面是我曾经使用的一些例子:
1、系统必须作出响应的情形,无须跳出,只待系统正常,否则手动干预:
Do
If Browser("teller").Page("teller").Frame("content").WebList("ACCT_STATUS").GetROProperty("value") = "" Then
Else
Exit Do
End If
Loop
2、使用WaitProperty函数,该函数的作用基本上和If……Exist(second)……End If比较类似。但是它的判断结果有True和False两种,在If的判断语句的时候很方便,因为条件成立可以执行下一步,反之如果需要不成立而去执行下一步,他的作用就不是If……Exist(second)……End If所能比的了。
WaitProperty("visible",true,10000)
第一个引号内参数是对象的属性名称,第二个是该属性的值,第三个就是等待的时间,单位是毫秒,具体的应用如:
If Browser("teller").Page("teller").WebElement("手续费打印完毕!
").WaitProperty("innertext","手续费打印完毕!",60000) = False Then
Browser("teller").Page("teller").Image("ToolBar_Refresh_0").Click
Elseif Browser("teller").Dialog("Microsoft Internet Explorer").Exist(10)Then
Browser("teller").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
Browser("teller").Page("teller").Image("ToolBar_Refresh_0").Click
Reporter.ReportEvent micFail, "发出托收票据", "交易失败"
ExitAction(-1)
End If
3、定义弹出框存在性状态,使用循环语句判断
Dim blnDone,counter
blnDone=false
counter=1
While blnDone
Wait (1)
blnDone=Window("iexplore").WinObject("OK").Exist
counter=counter+1
If counter=10 then
blnDone=True
End if
Wend
4、循环判断,跳出条件是i=10
Dim i
i=1
while ((window("iexplore").WinObject("OK").Exist) and (i<10))
window("Iexplore").WinObject("OK").Click
i=i+1
wend作者: FLY000 时间: 2010-11-24 17:37 本帖最后由 FLY000 于 2010-11-24 17:38 编辑
While Dialog("请稍等").GetROProperty("Visible") = "True"
i = i + 1
Wend
我想实现不定等待时间的效果,就是一直到对话框消失,但是当对话框消失时,Dialog("请稍等").GetROProperty("Visible")也取不到值了,这时会提示:
Cannot identify the object "请稍等" (of class Dialog). Verify that this object's properties match an object currently displayed in your application.
请问 无限制等待时间该怎么做?作者: sunnyswu 时间: 2010-11-24 20:37
回复 lyscser
While Dialog("请稍等").GetROProperty("Visible") = "True"
...
FLY000 发表于 2010-11-24 17:37