在我们在做自动化的时候,经常会遇到的一种情况是,在同一个页面里, 出现相同类型和名称的对象时,一般需要依赖额外的属性来区分这些相同的对象。 在QTP 里共有3类这样的顺序标识。 1. 顺序标识(Ordinal Indentifiers):[location Index CreationTime] 其中CreationTime 仅适用于Browser对象 这些顺序标识一般用在描述性编程里面 例如: '采用Location 是 按对象位置的从上到下的 Browser("").Page("").WebEdit("name:=qtp","location:=2").Set "Eric_1991" '采用Index 是按对象的位置从左到右的 Browser("").Page("").WebEdit("name:=qtp","index:=3").Set "Eric_1991" 'CreationTime 顺序标识仅能用在Browse对象, 按浏览器的进程产生的时间先后顺序排列 SystemUtil.Run "iexplore.exe", "http://www.HP.com" '这个时候CreationTime 的值是0 SystemUtil.Run "iexplore.exe", "http://www.baidu.com" '这个时候CreationTiem的值是1 Browser("creationtime:=").Highlight '高亮显示的是HP.com的浏览器 Browser("creationtime:=").Highlight '高亮显示的是baidu.com的浏览器' QTP 在碰到对象识别问题的时候,会尝试应用智能识别(Smart Identification)。 如果智能识别能定位到对象,那么脚本继续运行,否则会提示错误 在 对象的智能识别设置 Base Filter Properties 里会进行第一乱的 对象属性的匹配,如果Base Filter Properties 里面的属性不能够定位到该对象,那么QTP会到该对象的Optional Filter Properties 里面的属性进行逐个去匹配 ,直到能定位到该对象位置, 否则会发生对象找不到的错误