51Testing软件测试论坛

标题: 菜鸟QTP录制脚本的一些问题 [打印本页]

作者: 新手007    时间: 2007-12-19 18:27
标题: 菜鸟QTP录制脚本的一些问题
我们的软件是用delphi写的,我在录制脚本完成后,运行,但是老是一些窗口出错,对比了下,原来是每次window id 的值都在变化,为什么啊,录制的时候是一个值,怎么运行脚本的时候变了喃,而且每次用探测器查看都是同一个窗口得到不同的window id。晕了,是怎么回事喃?忘赐教!
作者: xinxue00    时间: 2007-12-19 19:03
好像见过这个问题!
试试下面:
把变化的属性值从对象库里去掉或者换成别的能够唯一确定该对象的属性。
录制完把window id属性去掉(录制时它默认选择这个属性),换成X、Y坐标。
作者: 新手007    时间: 2007-12-19 19:23
楼上的师兄,可否说清楚一点喃,步骤列出来下,小弟实在太菜····我是qtp 8.2
作者: xinxue00    时间: 2007-12-19 19:44
貌似我还没用过8.2,录制完成后打开对象库(Object Repository,应该是Ctrl+R快捷键)
找到出错的对象,在Object  Properties (也就是对象属性) 栏里面应该有这个对象的详细信息(就是test object details),选中window id,点击红色小叉按钮,就把它删掉了

如果不行,就点击绿色加号按钮,添加一个新属性,能唯一识别这个对象的就行,也不知道你出错的是什么对象,说的含糊请见谅
作者: 新手007    时间: 2007-12-20 10:14
标题: 回复 4# 的帖子
嗯,小弟先谢过,出错的对象是一个窗口的按钮,这种现象在我们的软件的其他窗口的按键也出现过,window id每次都变化,我有点怀疑是界面用delphi的原因,因为我之前测c#的东西都没出现过。还有就是弱弱的问一句,一般那些属性是唯一可以定义一个窗体的?X,Y?
作者: 新手007    时间: 2007-12-20 10:48
我找到了,X,Y可以,但是那么多window id 改变的按钮啊,我不可能一个一个去找来盖属性吧??有没有什么简单的办法?
作者: 新手007    时间: 2007-12-20 19:20
和什么有关系喃?
作者: bzfyhfyh    时间: 2007-12-20 22:32
期待中。。。。。。。。。。。
作者: 新手007    时间: 2007-12-21 13:03
不知道可能和delphi有关系没有
作者: 修兵    时间: 2007-12-21 13:56
果然是这个问题啊,QTP自带的FLIGHT里面的FAX窗口也是这个特性的,每次插入定单后打开,窗口的名字都不一样(动态变化),建议你用描述性编程(descrīptive progamming)。容易解决这个问题
作者: 泡泡糖    时间: 2007-12-21 19:17
恩,QTP自带的FLIGHT里面FILE下有个FAX ORDER选项,打开之后是一个FAX窗口,窗口名字中带有定单号,所以会随着ORDER NO变化,用一般的录制回放是不行的,QTP会找不到这个窗口,所以可以用描述性的编程方法,用TOOLS下的OBJECT SPY来点选这个会动态变化的窗口,选择其中的一些属性来代替描述这个窗口.这样就可以正确识别了.还有一种方法就是在对象库里面把对应的表示窗口名字的属性写成正则表达试,如果有数字变化的,就可以把数字替换成[0-9]+等等.
作者: 新手007    时间: 2007-12-25 15:27
我大概知道怎么改了,有个问题就是,要是软件种存在大量这样window id变化的按键,我怎么去控制呢?不可能遇到一个改一个吧?那样似乎太麻烦了吧?还有10#和11#的两位提到的述性编程(descrīptive progamming),具体是怎样的?我很菜不清楚
作者: kaifeng15    时间: 2010-10-19 23:03
回复 2# xinxue00

请教一下,如何将录制下来的对象唯一属性换成其他的唯一属性啊?
作者: 上帝注定    时间: 2010-10-20 11:15
回复 13# kaifeng15

通常使用getroproperty来获取属性的动态变化值




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2