QTP智能识别总结-转载
上一篇 /
下一篇 2012-10-22 19:28:36
QTP 识别对象原理QTP对每个控件类都定义了一些强制属性和辅助属性。当qtp对对象进行识别的时候,首先qtp会取出控件的所有强制属性,如果这些强制属性能够唯一标识这个控件则选强制属性来标识控件,如不能唯一标识控件,qtp则逐一取出控件类的辅助属性直到能唯一标识控件为止。如果使用强制属性和辅助属性还不能唯一标识控件。 则有以下两种可能:" n7 L0 t6 ?4 Q- n) } S5 R H# r3 kQTP对控件类的识别使用了智能识别(Smart Identificati2 L- M( D* [: R, b# von),qtp会忽略之前对强制属性与辅助属性的识别,这时qtp会使用smart identification 中的 basic filter properties和optional filter properties来对对象进行识别. basic filter properties就是一些控件的基础属性,例如button的Name,这个属性变了button也就变成另外一个button了。如果对控件类的识别没有使用Smart Identification,系统会使用Ordinal Identifier来对控件进行识别。' Q/ F* j9 [- K' x, V9 }2 I识别对象使用的属性顺序:顺序如下:: I6 F. d& p: W# U% Lmandatory properties->assistive properties -->Smart Identification ->ordinal identifier. a: m6 t6 q$ L @( S8 A; h( {7 \/ K在QTP中点右键查看对象属性时,识别的顺序如下* x9 E6 Y( q0 t% v5 ?/ ]3 A
>>> Description properties(即nomal变通的识别属性) # g. t) o9 [4 _$ `: K( D( Z& { q' N) }* z% p4 M5 ^- i1 |
>>> Additional details(额外内容,其中有“Enable Smart Identification”智能识别)# m% E. A, Y- g6 U5 ?
>>> Ordinal identifier(顺序标识符,如Creationtime,index等等,有些系统中,如果使用了智能识别,则此项将没有作用)注意,如果Creationtime,index等用描述性的方式写到脚本中,则算作是Description properties,即会首先用来识别对象。$ `2 w6 D3 q1 X; a8 t3 E' x控制智能识别的开关1.: q3 s; L, G" S: K; N" P( w
设置整个测试或一些控件不应用智能识别如果是要在脚本执行过程中禁用所有的智能识别,那只需要在开头加上' r8 ?+ [4 w! G- \Dim App Set App = CreateObject("QuickTest.Application")7 d6 w0 V6 n; N1 v+ f2 m# QApp.Test.Settings.Run.DisableSmartIdentification = True如果只是要禁用部分对象的智能识别,比如禁用WebEdit的智能识别,则用Dim App ( c- `; d1 w" J0 J( x5 Q; [6 H6 |Set App = CreateObject("QuickTest.Application")) @& h7 D7 I1 ?; T' p- e8 Z2 O, cApp.Options.ObjectIdentification("webedit").EnableSmartIdentification = False+ G& q4 _" K6 F7 P4 N% [6 o8 I5 P同样,禁用Browser的智能识别就是' G) {/ v, F9 ~App.Options.ObjectIdentification("browser").EnableSmartIdentification = False: W$ h$ b' Y! H9 |' w2.
通过手动设置QTP工具控件智能识别>>只针对当前测试:File –> Setting –> Run ,把“Disable Smart Identification during the run session”前面的复选框选上,则不当前测试不支持智能识别,反之支持。8 W: m g0 ?' W, n>>修改智能识别设置:Tools –> Object Identification,可以通过设置“Enable
Smart Identification”和“Configure”来改变智能识别设置。6 N6 Y3 [5 z& @. Z4 z注,理解这些原理对于处理一些控件总是不能识别的问题挺有帮助。如一个控件需要用index来识别,但是QTP总是先进行智能识别,这时就有可能出错了。4 L3 N q0 l; f. l$ F7 ~" W: q( B) v& s本人实验过,有些系统会有出错,但有些系统却不会。
转载他人,原帖地址:http://bbs.scmlife.com/thread-16482-1-1.html
收藏
举报
TAG: