QTP描述性编程问题
最近遇到一问题, 如何通过描述性编程把一堆的对象给描述出来.这里有个例子:
Browser("Browser").Page("Dober EHSS").Link("EHSS").Click
Browser("Browser").Page("Dober EHSS").Link("MSDS").Click
Browser("Browser").Page("Dober EHSS").Link("Label").Click
Browser("Browser").Page("Dober EHSS").Link("Configuration").Click
我想通过下面的语句把上面的四个Link button归到一起描述, 但是报错
Set ButDesc = Description.Create
ButDesc("Class Name").Value = "Link"
msgbox Browser("Browser").Page("Dober EHSS").ChildObjects(ButDesc).count
用其它属性是可以描述出来的,说明语法本身没错;
所以想请教大家, 可以通过link, button这些类名把对象找出来吗?
我好象没成功过, 不知可不可行? 大家给个答案,也好让我死了心
[ 本帖最后由 lhd85 于 2008-7-1 16:44 编辑 ] 如果要有link,button之类的,是不是要写成如下:
Set ButDesc = Description.Create
ButDesc("micclass").Value = "Link"
我用Class Name也没成功过,但用micclass可以 我试了下用micclass确实可以, 但我很奇怪很多人在博客里都用Class Name描述link, button之类的
谢谢了 原帖由 lhd85 于 2008-7-1 17:03 发表 http://bbs.51testing.com/images/common/back.gif
我试了下用micclass确实可以, 但我很奇怪很多人在博客里都用Class Name描述link, button之类的
谢谢了
不奇怪,N多人都是随便copy段代码就放到自己的博客里,试也不试,呵呵,至于CLASS Name为啥不行,等等高手解答吧 我在用CLASS NAME的时候也不行一般都用TITLE或者是其他的属性 这个问题我没细研究,只记得以前看过一篇网文,说是micclass是windows内置的属性,也就是任何windows元素如按钮、对话框等都有一个micclass属性,而class name在WINDOWS里是没这个东西的。VBS是一个脚本语言,说到底也只是调用windows的对象来执行各种操作,我就是这么理解micclass 和class name的。
纯属个人理解,请慎重参考。 miclass是windows标准控件的内置属性,而class name并不是标准控件的属性之一,而是QTP做的二次封装,也就是说,当对象在QTP记录之后,也就是QTP对对象进行二次封装之后才会有class name这个属性,而当我们使用childobjects,对象并没有被记录到QTP对象库中,也就是QTP还没有对对象进行封装,所以是没有class name这个属性的,我们通过class name这个属性当然找不到了
或者说当使用childobjects()函数时,它可能并不支持查询条件为class name,所以会报general run error
今天有人在群里问,然后群友把之前帖子贴出来,自己觉得这样解释可以通了 原帖由 xiaoyaoke 于 2009-5-14 16:13 发表 http://bbs.51testing.com/images/common/back.gif
miclass是windows标准控件的内置属性,而class name并不是标准控件的属性之一,而是QTP做的二次封装,也就是说,当对象在QTP记录之后,也就是QTP对对象进行二次封装之后才会有class name这个属性,而当我们使用childobject ...
可以这样理解。
页:
[1]