51Testing软件测试论坛

标题: 使用Description.Create()出现的问题 [打印本页]

作者: here556    时间: 2010-12-28 10:47
标题: 使用Description.Create()出现的问题
我通过Description.Create()来识别对象,代码如下:
Set myDescription = Description.Create()
myDescription("micclass").Value = "WebEdit"   
set Lists = Browser("title:=ServiceUi").Page("title:=ServiceUi").Frame("html id:=outputView").ChildObjects(myDescription)
希望通过WebEdit的属性来获得所有WebEdit,首先我先去要识别的对象所在的页面获得识别对象的所有属性,如截图,但是发现有些属性能够识别对象,比如
myDescription("name").Value = "WebEdit"   
而有些就不能,比如Class Name,我使用myDescription("Class Name").Value = "WebEdit"  就不能识别,可是Class Name属性在该对象的属性里明明有啊,这是为什么?我在通过name识别了该对象后通过Lists(i).GetROProperty("Class Name")显示Class Name为空值。而且在使用过程中发现一个奇怪的问题,就是我昨天晚上在使用myDescription("micclass").Value = "WebEdit"   时,会识别出很多对象,有些并不是WebEdit,而且把这句话注释掉后直接使用如下代码还是可以,非常奇怪,但是今天再试就可以唯一识别WebEdit对象了,不知道别人有没有遇到过类似问题,还是我的QTP版本有问题,我使用的是QTP9.2
Set myDescription = Description.Create()
'myDescription("micclass").Value = "WebEdit"   
set Lists = Browser("title:=ServiceUi").Page("title:=ServiceUi").Frame("html id:=outputView").ChildObjects(myDescription)
作者: my_way    时间: 2010-12-28 15:32
本帖最后由 my_way 于 2010-12-28 15:34 编辑

其实没必要每次都通过ChildObjects来获取页面或者frame下面的所有子对象,再筛选要用的对象。
你也说过了可以通过myDescription("name").Value = "WebEdit"   来识别该对象,就说明name这个属性是唯一标识改对象的属性之一(唯一标识对象的属性有可能是多个)。那么就可以通过:
Set myDescription = Description.Create()
myDescription("name").Value = "WebEdit"  
Set obj_webedit = Browser("title:=ServiceUi").Page("title:=ServiceUi").Frame("html id:=outputView").WebEdit(myDescription)
obj_webedit.Set 123

其实也不用这么复杂,更简单的就这样:
Browser("title:=ServiceUi").Page("title:=ServiceUi").Frame("html id:=outputView").WebEdit(“name:=WebEdit”).Set 123

至于你说的,myDescription("Class Name").Value = "WebEdit"  不能识别,很有可能该frame下Class Name为WebEdit的对象不止一个。
作者: skyzhu    时间: 2010-12-28 16:09
本帖最后由 skyzhu 于 2010-12-28 16:11 编辑

Description 是没有 Class Name的,需要用micclass
具体的东西在注册表能看到一些,暂时说不太明白

可以参考
http://blog.csdn.net/zzxxbb112/archive/2010/03/17/5389043.aspx
作者: superliming    时间: 2010-12-28 16:30
就是micclass
作者: superliming    时间: 2010-12-28 16:32
就是micclass
作者: here556    时间: 2010-12-28 16:59
我明白了,谢谢skyzhu 提供的文章!
作者: 阿七    时间: 2010-12-28 17:41
回复 3# skyzhu


那为什么 找的是 micclass
不是别的?




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