概述
注:本文为以前博客的原创作品,本人拥有完全的版权,未经本人书面同意,不得用于商业用途,否则本人保留追究相关责任的权利。转载可以,但需要标明出处。。
作者:文青山
联系方式:欢迎发邮件到wolaizhinidexin@163.com,进行探讨和沟通
另注:请大家谅解创作的艰辛和尊重我的劳动,上面的申明如有得罪之处,还请谅解。
翻开QTP帮助文档中Standard Windows对象,我们可以看到一下面这个列表:
让我们来看看其对象的具体样子:
Dialog对象:
从直观的第一视觉来说2应该是Window对象,为什么2也是Dialog对象呢?因为Class Name属性的值是Dialog,并且native class的属性是#32770。而Window对象Class Name属性的值是Window,native Class属性并不能决定其QTP对象的类型。这里需要引起注意,跟Web相比,在Web对象中native Class属性才是对象不同的关键属性,而Windows标准控件却是Class Name属性,但似乎这个Dialog对象例外,至于原因为何,期望谁能帮我解答一下。于是,遥想一下,在使用描述性编程时如果我们将Dialog对象当成了Window对象来使用,会不会出现错误呢?
我做了一下试验,试验代码如下:
Dim iSWindow,iSLogin
Dim title
Dim url
url="D:InstallQTPsamplesflightappflight4b.exe"
title="Login"
SystemUtil.Run url ''启动待测试软件 返回
print Dialog("Login").Exist'打印是否存在Dialog对象
iSWindow=Window("nativeclass:=#32770").Exist(4)''打印将对象为Window进行描述,判断对象是否存在
If iSWindow Then
iSLogin= Window("nativeclass:=#32770").GetROProperty("regexpwndtitle") ''获得这个对象的regexpwndtitle值,用来查看是否与期望的一致
If iSLogin=title Then
print "可以使用Windows来代替Dialog"
else
print "获得的标准为:"&iSLogin
End If
else
print "不能使用Window来代替Dialog"
End If
得到的结果如下:
True
可以使用Windows来代替Dialog
为什么可以这样呢?希望有人能够回答一下,我不清楚他们可以互换的原因。但你在描述性编程的时候,看来只要传递对了相关的属性,这里是使用Window还是Dialog看来是无关紧要的。不过,我还是建议是Dialog就用Dialog,是Window还是使用Window,毕竞QTP这样处理,那他肯定是有原因的(虽然我不知道这个原因),存在就是最好的借口。返回
Static对象:
返回
WinButton对象:
返回
WinCalendar对象:
WinCheckBox对象:
返回
WinComboBox对象:
WinEdit(或WinEditor)对象:
返回
WinList对象:
WinListView对象:
返回
WinMenu对象:
似乎不可获取,只能录制取得这个对象
WinRadioButton对象:
返回
WinTreeView对象:
WinStatuBar对象:
返回
WinToolBar对象:
WinScrollBar对象:
如word中的滚动条。
WinSpin、WinTab对象的实例,实在是难找,估计用得也不多,在此就剩略了。
WinObject对象,当QTP认不到这个对象的时候就以WinObject对象来代替。返回
总结:本文举了一些Windows标准控件与QTP Windows对象对应的实例,借此以期能加强对于非Web状态上的对的认识。非Web状态上的对象识别,果真要比Web复杂得多,如此短文耗费了我两个晚上的时间。
2011-11-01晚
文青山
最后
以上就是现代鸡翅为你收集整理的——Windows标准控件与QTP Windows对象的对应关系的全部内容,希望文章能够帮你解决——Windows标准控件与QTP Windows对象的对应关系所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复