从品牌网站建设到网络营销策划,从策略到执行的一站式服务
今天写了一个程序安装的自动化脚本,调试的时候发现有些控件的值获取后一直未自动刷新,鉴于该问题,仔细分析和请教后,发现TestComplete不会自动刷新控件中变化的值,这需要我们自己去控制刷新。
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、成都微信小程序、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了临洮免费建站欢迎大家使用!
1、定义一个延迟函数(参数:延迟秒数,执行延迟的条件)
Function TimeDelay(DelaySeconds,condition)
Dim interval,startTime
startTime=Time
Do While CBool(condition)
sleep(DelaySeconds*1000)
interval=Second(Time - startTime)
If interval =40 Then
Log.Error("Time Out.")
Exit Do
End If
Loop
End Function
2、Namemapping 一个显示进度的控件(控件的value:0%-100%):
Set InstallProgress = Aliases.SQLNav.frmSQLNavWizard.panelMain.panelFrameHolder.SelectProduct.pnlNewProducts.pnlRightInstallProgress.labelInstallProgress
3、在脚本中调用函数:
Call TimeDelay(2,InstallProgress.Caption<>"100%")
发现会一直延迟,直到超过指定间隔Time Out,原因就是最上面分析的,控件InstallProgress.Caption的值没有动态刷新,获取的是调用时的值,后面一直未改变。
4、修改脚本:
对于具有动态值的控件,使用上面的延迟函数显然不合适,对于具有动态值的控件下的延迟处理,可单独写一段脚本处理,使用TestComplete自带的方法RefreshMappingInfo()只刷新该控件 :
Dim beginTime
beginTime = time
Do While InstallProgress.Caption<>"100%"
sleep(2000)
InstallProgress.RefreshMappingInfo
If Second(time - beginTime) =40 Then
Log.Error("Time Out.")
Exit Do
End If
Loop
或者是在函数中加入sys.refresh()刷新整个程序,不过不建议使用这种,整个刷新很耗性能的。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图