51Testing软件测试论坛

标题: QTP无法识别的一个控件,请大家帮忙解决下,感激不尽 [打印本页]

作者: Doppelganger    时间: 2010-11-1 15:38
标题: QTP无法识别的一个控件,请大家帮忙解决下,感激不尽
QTP脚本为:
   Browser("XX").Page("XX").WebElement("WebElement").Object.FireEvent("ondblclick")
    Browser("XX").Page("XX").WebEdit("参数_1").Set"1"
问题: webedit 无法识别
大家注意下:
0  此系统系GWT框架下开发
1  webedit可以被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
http://www.51testing.com/html/74/n-108374-2.html

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

这个
作者: momang    时间: 2010-11-4 18:52
另外 描述性编程  应该也能解决你这个 问题

  第一行的双击 可以不用的

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

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

如果还不行的话 再来求助吧
作者: momang    时间: 2010-11-4 18:56
问题就在于 你的这个WebEdit  是在Table的下层

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

咱们可以理解  WebElement 其实就包含了 webtable webedit 等等
作者: Doppelganger    时间: 2010-11-10 09:03
回复 4# momang

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

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




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