51Testing软件测试论坛

标题: 描述性编程中对象的属性如何获取? [打印本页]

作者: nbkhic    时间: 2009-5-15 14:19
标题: 描述性编程中对象的属性如何获取?
这几天一直在进行描述性编程的实验,据说描述性编程可以使得QTP在Run-Time时获取描述所对应的对象,并运行对象固有的方法。

现在小弟有如下疑问:
1.描述性编程可以使得QTP获取不在对象库中的对象。

如果对象不在对象库中,那么我们如何去获取对象的属性,也就是Property

描述性编程的格式应该为

objectName("Property :=******").Property or method
如果对象不在对象库中,那么它的Property 我们该如何去获取?
用SPY?
我使用SPY去获取过浏览器对象的Property,在如下情况下,比如只打开1个浏览器窗口,观察浏览器对象在spy中显示的Property ,我发现SPY连浏览器对象的text属性都获取不到!

请大家指导一下,如何正确的获取不在对象库中对象的Property从而以便描述性编程时能够使用。
作者: fei.ge    时间: 2009-5-15 14:29
1用spy直接获取

2或者你录制完了脚本,结合对象库里对象的属性,再把所有脚本修改成描述性脚本
作者: fei.ge    时间: 2009-5-15 14:31
【我使用SPY去获取过浏览器对象的Property,在如下情况下,比如只打开1个浏览器窗口,观察浏览器对象在spy中显示的Property ,我发现SPY连浏览器对象的text属性都获取不到!】

浏览器指的是Browser吧,Browser一般用title属性去描述
作者: nbkhic    时间: 2009-5-15 14:35
原帖由 fei.ge 于 2009-5-15 14:29 发表
1用spy直接获取

2或者你录制完了脚本,结合对象库里对象的属性,再把所有脚本修改成描述性脚本


关于第1点,我认为SPY的获取正确性有待讨论,因为我举得那个例子里spy连基本的text属性值都获取不到。而我还是用录制的方法识别出对象后使用getROProperty(“text”)的值;

关于第2点,使用描述性编程本来就是不想受到对象库的限制,比如有些对象是在录制脚本的时候没有获取到的,但是我们大概能够知道它的属性,于是才会去使用描述性编程去操作它。
我的主要困惑就是,spy的功能似乎有局限,并不能获取到对象所有的可用属性。是不是这样呢?
作者: fei.ge    时间: 2009-5-15 14:51
【关于第1点,我认为SPY的获取正确性有待讨论,因为我举得那个例子里spy连基本的text属性值都获取不到。而我还是用录制的方法识别出对象后使用getROProperty(“text”)的值;】
<<<你的目的就是想获取到text的值吗?通过描述性完全可以啊,只要你能让QTP先识别出你的对象

【关于第2点,使用描述性编程本来就是不想受到对象库的限制,比如有些对象是在录制脚本的时候没有获取到的,但是我们大概能够知道它的属性,于是才会去使用描述性编程去操作它。】
<<<描述性对象编程是不想受对象库的限制,你可以写完描述性脚本后删除对象库

【我的主要困惑就是,spy的功能似乎有局限,并不能获取到对象所有的可用属性。是不是这样呢?】
<<<这个.....,可能吧....
作者: nbkhic    时间: 2009-5-15 16:22
很奇怪的是,我把browser对象加入对象库中之后,browser对象的text属性并没有被保存……
然后我用描述性编程去通过text属性识别该对象时发现该对象不能被识别。因此是否可以得出这样的结论——对象库中并不能保存完全的对象属性,并且在使用描述性编程的时候,使用对象库中保存的属性值进行识别的话成功率会高一些?
作者: fei.ge    时间: 2009-5-15 16:42
能不能说一下的获取的是哪一个Browser,是你们公司的做的web项目吗?
能把你的代码贴上来?
作者: nbkhic    时间: 2009-5-20 14:06
呵呵,我用对象库编程动态匹配解决这个问题了。稍微改了些代码就可以了,谢谢楼上的大哥啊。




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