QTP对象识别原理之我见
来源:互联网 发布:一键加群软件 编辑:程序博客网 时间:2024/06/01 09:20
在讨论这个话题之前,先让我们把思绪抽回到1800年前。
这里是烽火连天的三国时代,曹操与马超正大战于潼关。乱军丛中,曹操望风而逃,马超在后面大喊:“穿红袍的是曹操!”,曹操听到后立马脱掉红袍。随后又听到大喊:“长胡子的是曹操!”,曹操大惊,又拿刀割掉了自己的胡子。马超知道后,大喊:“短胡子的是曹操!”……
为什么要先说这么一段故事呢,其实这段故事的某些地方与QTP中对象识别原理非常相似。
- TO与RO,记忆与现实
首先,我们知道,QTP中的对象有两个概念,一个是Test Object (TO)即对象库对象,另一个是Run-time Object(RO)即运行时对象,并且有四个非常重要的和TO、RO相关的函数:
GetTOProperty() —— 获取对象库对象的某个属性值
GetTOProperties() ——获取对象库对象的所有属性值
SetTOProperty() —— 设置对象库对象的某个属性值
GetROProperty() —— 获取运行时对象的某个属性值
这些看起来好像很抽象,但其实QTP去识别对象和我们人脑去识别各种事物有着异曲同工之妙。 通常情况下,我们去识别一个人,脑海中首先会有一些基本的印象,比如,性别、外貌、身高、声音等等,QTP的对象库对象(Test Object)就好比是人的大脑中的记忆,性别、外貌、身高等因素就是这个对象的属性。知道了对象库对象的概念后,运行时对象其实也很好理解了,就是在运行时的实际对象,好比是一个真实的人,而不是记忆中的那个人,因为这两者毕竟还是有一定区别的。
有了对象的这些属性就能够识别出这个对象了吗?答案是否定的。因为这些属性有些不是强制属性,是会临时变化的。就像文章刚开始时的那段故事中一样,第一次,马超率领的西凉兵,对曹操的印象是“穿着红袍”,士兵们带着“战袍颜色 = 红色”这个很容易变化的辅助属性去识别曹操,而狡猾的曹操知道后立刻改变了这个属性,结果造成了西凉兵识别不能;第二次,马超用了一个SetTOProperty()的方法改变了士兵们脑海中的记忆,他告诉士兵们:“胡子很长的那个是曹操!”,于是西凉兵们又带着“胡子长度 = 长”这个辅助属性去识别曹操,谁知曹操又一次巧妙地改变了自己的胡子属性,再一次使西凉兵识别不能;第三次,马超又用了一个SetTOproperty() 的方法把长胡子改成了短胡子,哈哈,要知道胡子剪短容易,变长难,西凉兵们根据“胡子长度 = 短” 这个属性成功匹配曹操这个对象,看来曹操这次是真的逃不掉了!
- 强制属性、辅助属性和顺序标识
还是用我们人脑识别人来打比方,下面列出了一些关于识别人的强制属性、辅助属性和顺序标识:
强制属性:身份证号码、指纹、DNA、性别(可选,至于为什么是可选,大家都懂的。。。)、……
辅助属性:身高、年龄、外貌、体型、声音、着装、……
顺序标识:住址、站在谁的旁边、坐第几排第几个、……
相信大家看了上面的例子之后应该会有种豁然开朗的感觉,QTP去识别对象也是通过QTP的一些封装属性去识别,并且按照强制属性 --> 辅助属性 --> 顺序标识的优先级去识别对象。
另外,如果通过强制属性、辅助属性和顺序标识的手段仍然不能识别一个对象时,QTP还有智能识别模式,智能识别模式会在以后的文章中讲到。
- QTP对象识别原理之我见
- QTP对象识别原理
- QTP识别对象的原理
- QTP识别和操作对象的原理
- 【转载】QTP识别和操作对象的原理
- QTP识别对象讲解
- qtp对象识别
- QTP对象识别与操作
- QTP对象识别与操作
- QTP对象识别的问题
- QTP对象识别机制
- QTP对象识别与操作
- qtp对象识别成winobject
- QTP对象识别不了的方法
- QTP对象识别机制 (转载)
- QTP对象识别机制 (转载)
- QTP的对象顺序识别技术
- QTP 无法识别web对象原因
- Python学习记录
- 常见的链表题目及代码(很好的代码格式)
- python thread之join
- 【网络流各种模板】
- 外语学习的真实方法及误区
- QTP对象识别原理之我见
- 使用Windbg调试内核
- TinySQL 使用
- MAP和MLE的一个sample
- ios系统中各种设置项的url链接
- 传智播客——毕向东25--第4天总结-3
- poj 1003
- poj1024 bfs
- python Queue模块