51Testing软件测试论坛

标题: 为什么object在录制过程中的属性和spy出来的不一样? [打印本页]

作者: topor    时间: 2008-10-30 23:23
标题: 为什么object在录制过程中的属性和spy出来的不一样?
Web application如下图一所示,在子页面A上面有两个table ,A1和A2。
现在发现用QTP录制table A2中的webedit对象时候,回放总是报错:提示找不到对象。
原来table A2中的webedit对象在录制过程中的object respository中显示为:Browser(***).page(***).Webedit( )
即使用highlight in application功能也不能正确的指定到table A2中的Webedit对象(webedit对象取不到name属性的值,那些列名是作为webelement对象单独存在的)。
用spy去添加table A2中的Webedit对象时,在对象窗口中是按照图2的结构显示的,但是当把这个object加到object respository中去的时候,
QTP就把它直接加到page下面了,根本没有相关的table 对象的信息。
问题1: 为什么会出现这种现象呢?为什么在spy中的table对象不能被识别并添加到object resposityor中去呢?
问题2:对于table里面所有的webedit对象,QTP只识别为一个webedit对象,不能精确定位到table里面的单元格里面去?
已经尝试过的解决办法:
问题1:手动添加table A,table A2的对象到对象库中,并把webedit对象放到它们下面,使得结构跟spy中的一样,即:Browser(***).page(***).Webtable(A).Webtable(A2).Webedit( )
  但是在回放过程中QTP提示仍然找不到对象。
问题2:手动添加table A,table A2的对象到对象库中,并为webedit添加index的属性。用childitem的方法取webedit对象,set值。QTP运行过程中仍然不能按照预期的为某个field写值。

这个问题已经困扰我很久了,一直没找到解决的方法。不知道大家在录制Web程序中有没有遇到类似的问题?有没有什么解决的办法?谢谢

http://bbs.51testing.com/thread-129670-1-1.html

[ 本帖最后由 topor 于 2008-10-30 23:26 编辑 ]
作者: yangkinki    时间: 2008-10-31 00:35
找不到对象的问题有许多种,看看对象在执行时的属性以及属性值是否与对象库中的匹配,可能某些属性的值是动态的,那么始终都会说找不到对象。
作者: topor    时间: 2008-11-3 20:19
yangkinki版主能否详细说明一下怎么查看对象在执行时的属性呢?谢谢!
作者: yangkinki    时间: 2008-11-4 00:01
可以使用getroproperty方法,或者是程序录制过程中,使用对象库添加对象,用spy也行,查看对象的属性以及属性值
作者: 若为伊人    时间: 2008-11-4 09:27
遇到这种情况挺正常的。有时候我们就会用childobjects方法把所有该类型的对象都读出来,然后再通过索引值标识具体对象,这样就不容易出错了,当然索引并不是一种好办法,使用的前提必须是页面已经完全稳定。
作者: sharon_bamboo    时间: 2010-10-21 15:21
遇到和你一样的问题啊,郁闷几天尚未解决,请问你最后是怎么解决的了???




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