Doppelganger 发表于 2010-11-1 15:38:47

QTP无法识别的一个控件,请大家帮忙解决下,感激不尽

QTP脚本为:
   Browser("XX").Page("XX").WebElement("WebElement").Object.FireEvent("ondblclick")
    Browser("XX").Page("XX").WebEdit("参数_1").Set"1"
问题: webedit 无法识别
大家注意下:
0此系统系GWT框架下开发
1webedit可以被QTP添加到对象库,可以SPY相关属性。
2就像大家看到的,此控件未被双击时是“WebElement”,双击后为“WebEdit”,可编辑数据。
3被双击后的“webedit”的Html id 为随机值,无法做为属性识别...
4除Html id外,将对象库webeidt其他属性全部添加到webedit,依旧无法识别,提示是匹配不止一个对象..
3此控件上层为"webtable"
曾做过的尝试:
1 曾想绕过webedit,用"WebElement.innertext“的方法传进去值,但保存数据时,系统报错,也就是系统根本不承认我录入的数据,结果失败...
2 曾用上层节点的“webtable.childitem”来操作单元格,以绕开此控件,但发现单元格实际依旧为"webelement",失败..
3 想用DOM方法,通过IE8自带的开发工具查看DIV,发现被测页面不存在,是通过JS动态加载的..

说明: webelement的识别没有问题,但webedit一直无法识别...

momang 发表于 2010-11-4 18:48:00

http://www.51testing.com/html/74/n-108374-2.html

看看 这个帖子 对你有没帮助

这个

momang 发表于 2010-11-4 18:52:33

另外 描述性编程应该也能解决你这个 问题

第一行的双击 可以不用的

第二行的set   如果 htmlid 是动态的 可以尝试其他属性 试试看

Browser("XX").Page("XX").WebEdit("属性 := 值").Set"1"

如果还不行的话 再来求助吧

momang 发表于 2010-11-4 18:56:56

问题就在于 你的这个WebEdit是在Table的下层

而之前的WebElement 其实是QTP的一种处理机制, 当QTP 不能识别到该对象的具体类别的时候就抛了个WebElement 出来你会发现很多对象 都叫WebElement

咱们可以理解WebElement 其实就包含了 webtable webedit 等等

Doppelganger 发表于 2010-11-10 09:03:13

回复 4# momang

非常感谢上面的哥们的无私帮助~:handshake
还是继续求助。。。。首先 这个控件在流程上,是双击编辑框后才可以激活文本框,才可以输入参数,未激活前是不可输入的。。第二 就如开题所说的,用描述方法除了htmlId属性其余属性依旧无法识别到控件,提示是不止匹配一个,感觉htmlid是关键属性,但随机值太大,无法获取。。 第三 ,被页面是JS函数调的,用什么工具或什么方法查看被测页面源码,得知DIV。。。

Doppelganger 发表于 2010-11-10 09:03:51

回复 4# momang

非常感谢上面的哥们的无私帮助~:handshake
还是继续求助。。。。首先 这个控件在流程上,是双击编辑框后才可以激活文本框,才可以输入参数,未激活前是不可输入的。。第二 就如开题所说的,用描述方法除了htmlId属性其余属性依旧无法识别到控件,提示是不止匹配一个,感觉htmlid是关键属性,但随机值太大,无法获取。。 第三 ,被页面是JS函数调的,用什么工具或什么方法查看被测页面源码,得知DIV。。。
页: [1]
查看完整版本: QTP无法识别的一个控件,请大家帮忙解决下,感激不尽