在些先声明,如果触犯到了HP的利益,实属无心。
迫于QTP对自定义控件的识别局限,和项目的需要,无奈之下对QTP做了全面的体检,安装目录下的每个文档都研究了一遍,只为了找出QTP识别自定义控件的根本方法,经过一些努力,有所收获,在些拿来和大家分享一下,也要感谢陈能技大哥的那篇文章:QTP对.NET自定义控件的扩展。
其实QTP的对象识别核心思想,分成两种,一种是封装好的DLL,另一种是XML标记语言描述,这两种文件里面都是封装的一些标准控件,各种插件安装后也是如此,QTP先会读取这些文件,然后会把它里面的对象类别加载到一个文件,每次QTP启动的时候,根据选择的ADD_IN去加载控件支持,在录制和回放脚本的时候拿这些对象属性去对比获得的对象属性,如果属性和方法相同则能识别,介于这个思想,我们就不用再对QTP的插件保持它的神秘感了,对于9.5以下的版本,QTP安装插件都需要插件有权限,所以我们其实可以在QTP自带的对象描述文件夹中,把没有权限的插件的对象描述COPY进去,或者也可以自己开发插件,然后对QTP的文件进行修改就行了,而对于自定义的控件,我们也可以在XML文件里面增加或修改控件描述,让QTP识别它,就说这些吧,还有些具体的技术细节没有搞清楚,等都OK了再进行补充。