zoujufei 发表于 2010-8-25 09:45:53

【在线等待】增加层级结构导致下一级对象无法在对象库中找到

我的脚本语句如下:Bowser(A).Page(B).WebElement(C).WebEdit(D).set "abc"
QTP在录制上述语句时,仅录制成:Bowser(A).Page(B).WebEdit(D).set "abc"
WebElement(C)对象是我手动添加到对象库,并修改脚本,目的是更好的将WebEdit(D)与父页面其它WebEdit(D)区别

但QTP在运行时,却提示WebEdit(D)不存在对象库中,但对象库是有此对象的

如果我将句子修改成:Bowser(A).Page(B).WebElement(C).WebEdit("index:=0").set "abc" (0是WebEdit(D)的index值),则可成功运行

为什么?

鹭岛 发表于 2010-8-25 09:52:17

我还真没见过两个底层对象碰到一起的情况~~

如果整个页面中Bowser(A).Page(B).WebElement(C).下面根本没有WebEdit这个控件,当然找不到。另外属性描述错误肯定也找不到

以上,我个人觉得,WebElement下面压根没有WebEdit这个控件,LZ无中生有,画蛇添足。。。想当然了吧?

skyzhu 发表于 2010-8-25 10:30:39

Bowser(A).Page(B).WebElement(C).WebEdit("index:=0")
是可以这样找的,原则上WebElement和WebEdit 是有上下层关系的,但是QTP在一般情况下会忽略WebElement层,因为在page下就能直接找到WebEdit,所以省略了一层而已
自己加上也是可以的
但如果你要写成Bowser(A).Page(B).WebElement(C).WebEdit(D),那就在对象库中一定要层次相同,否则这个代码在对象库中就找不到了,而QTP默认是同层的

zoujufei 发表于 2010-8-25 10:40:21

回复 3# 的帖子

有道理,我也是怀疑QTP不承认这两个对象之间的父子关系。我看看,在对象库中保证他们层次关系看看,谢谢

zoujufei 发表于 2010-8-25 11:16:22

回复 3# 的帖子

OK,搞定。谢谢三楼
页: [1]
查看完整版本: 【在线等待】增加层级结构导致下一级对象无法在对象库中找到