手把手教你TestComplete_对象的等待问题
来源:互联网 发布:添加网络hp打印机步骤 编辑:程序博客网 时间:2024/05/01 01:40
因为各种各样的原因,回放脚本的时候不会那么顺利,测试环境可能慢一些,被脚本一催赶,立刻变得结结巴巴的,或者本来很伶俐的程序,突然一下就脑子短路,半天没动静了。反正一句话,常在河边走,偶尔总会踩狗屎的。所以对象的等待问题很难绕过去。
首先说等待,等待谁?仔细琢磨下,应该是等待下一个动作的相应对象,比如你完成上一个步骤后,要在下一个窗体的某个按钮上点击一下,这个窗体老半天不出来,表面是窗体不出来,窗体真出来了,你就敢说那个按钮一定能点得上?所以别傻傻的去等窗体,得找正主,具体的那个按钮。找到了正主,你就可以随便选择方法了。
可以玩狠的,直接死循环,你不出来我就死给你看:
while (not obj1.obj1.obj1.obj1.exists)
BuiltIn.delay 3000,"等待obj1。。。"
Wend
探讨一下,这里exists有没有问题,如果这个对象已经在内存了,但是界面上没有显示出来,这句话就会有问题,会不会改成visible更好,那如果在内存了,又没显示出来,就白等了。那你写日志说对象在内存了,但是没显示出来就好啦。
还有种情况,会不会对象出来了,exists和visible都是true了,但是屏幕是刷白的状态,你做点击动作可能还是不行,会不会那么邪呼的,真的,会有这种更变态的情况的。那咋办,抓图片比对吧,这个法子肯定没问题了,都能看到了,还不能操作呀。
while (not Regions.Compare("obj1bmp", obj1.obj1.obj1.obj1. obj1bmp, False, False, True, 0))
BuiltIn.delay 3000,"等待obj1bmp。。。"
Wend
这个怎么做的?录制的时候选择了图片的checkpoint,然后就贴出代码来。
这个做法比较山寨,一旦窗体出不来,整个代码就不用跑了。
什么?山寨?还有更山寨的!啥代码都不用写,直接设置一下:
菜单:Tools—Default project – properties
左面树状目录:playback
右面第一排右边的那项:Auto-wait timeout,ms: 10000
哦,原来是缺省等待10秒。
懂了塞,直接搞个倆小时,我就不信你不出来了,如果不出来就是死了,你都死了,那我也不用动了。
你们这些做法都太山寨太江湖气了。看看标准的做法,TestComplete提供了一系列的Wait函数。
举个例子:
TestObj.WaitVBObject(Name, Timeout)
TestObj A variable, parameter or expression that specifies a reference to one of the objects listed in the Applies To section
Name [in] Required String
Timeout [in] Required Integer
Result Object
解释:
是谁要等谁,通常来说都是父对象等待子对象,TestObj就是父对象,name就是子对象名字,timeout自然是要等多久,过时就代码决定该何去何从了。Result就返回子对象的引用。
看出来了吧,名门正派就是讲究的更清晰准确,谁等谁,等多久,用什么Wait函数来等,没等到可以代码细节处理。
总结:
不同的情况采取不同方式,如果你只需要完成一个简单的系统自动化,并不需要做很多控制,要求维护成本最低,那就直接配置个倆小时得了,如果你的系统需要精细化控制,就用wait函数来精确控制。至于死循环的那倆法子,你不想改变配置,又不想搞清楚是什么wait函数来等,就直接山寨了吧。
够用就好。大家自己选择吧。
- 手把手教你TestComplete_对象的等待问题
- 手把手教你TestComplete_对象浏览功能
- 手把手教你TestComplete_杂七杂八
- 手把手教你TestComplete_怎么捕捉一个动态对象
- 手把手教你TestComplete_回放找不着对象了
- 手把手教你TestComplete_数据库外键关联问题
- 手把手教你TestComplete_验证码识别
- 手把手教你TestComplete_文件读写示例
- 手把手教你TestComplete_读键盘输入示例
- 手把手教你TestComplete_配置嵌入脚本
- 手把手教你TestComplete_自动发邮件
- 手把手教你TestComplete_修改代理服务器
- 手把手教你TestComplete_暂时告一段落
- 手把手教你TestComplete_调用标准dll实例
- 手把手教你TestComplete_调用cmd命令行程序
- 手把手教你TestComplete_数据库操作函数示例
- 手把手教你TestComplete_自动化测试流程示例
- 手把手教你TestComplete_图文转换OCR示例一
- JBPM学习日志(三)
- dedecms织梦暴最新严重0day漏洞
- Girls and Boys
- STL sort排序方法详解
- 一些重要的算法
- 手把手教你TestComplete_对象的等待问题
- 编译器的返回值优化
- UVALive 4976 Defense Lines
- menu
- 单位的编程平台是linux+gcc,为了适应这个潮流,我只能开始了漫长的linux学习之旅!
- 诺基亚手机有多少个系列?
- char *a 和char a[] 的区别(指针和数组的区别)
- ewebeditor PHP 3.8版本上传任意文件0day
- 2011-8-12 17:23:21