但是往往我们无法正确理解这2个属性的含义和变化规律,就会给我们的测 试带来很多困惑.
(曾经我也深深困惑过!还求助无门)
下面我就来说说我使用过程中的总结吧,相 信用QTP做WEB测试的人,一定都有这方面的困惑
总结1:
Index和 CreationTime属性的特点是一样的,唯一不同的地方是,index一般用来表示页面中的对象,元素的先后创建,CreationTime只用来 表达浏览器(还有其他的window)相 对于QTP启动时间上的顺序关系.
总结2:
index 是一个辅助识别属性
(有时可以没有"在已经唯一标识一个对象的情 况下"有时又必须"某些对象什么属性都相同")
这就决定了在"相同描述的对象"出现多个的情况下就一定有index,在一个对象现有"描述属性"已经能唯一标识一个对象的情况下,index是不会出现的.此时的index属性QTP里面标 识为"none"
比如"性别=男"这个"描述属性"在"全家"里因为有多个,所以就 一定要Index来辅助描述.
那么"称呼=爸爸"这个"描述属性"在"全家"里只有1个,所以我们 说"爸爸"就马上知道是谁
总结2:
index在对象是唯一的情况下,没有任何意义和价值
也就是 说,只要这个对象在这个页面中确实是唯一的,那么无论你的index是什么值都能够正确识别这个对象
比如当前页面中只有一个叫"风景"的图片,那 么这个"风景"图片在任何index属性下都能正确识别
总结3:
当 index,CreationTime属性在对象库中为none的时候,不能使用SetTOProperty赋值index属性,
这 个现象的原因目前还不明,不过现象是赋值能够成功,
但是你无法使用赋值后index属性来正确识别你想像中的对象.
总结 4:
index属性是QTP自己标识的.和程序编程里的index无关.
学 过编程的人,容易带入编程里面的概念,然而在QTP中,index属性是QTP自动生成的,和程序编程的时候使用的index是没有任何关系的,
index 属性的生成是按照相同对象出现的顺序来排列的,就是你用ChildObjects方法获得的对象集合中item(i)索引的顺序.
总结5:
index属性我们只能尝试改变对象库中的,不能改变实际对象
因为index属性是由QTP自动标识的,而实际对象是没有index属性的,所以我们不能使用SetROProperty方法尝试改变实际对象的 index属性,只能使用SetTOProperty方法改变对象库中的对象,让QTP识别.
最后希望对那些还困惑在其中的同仁有少许帮 助,我以前在index为none时候用SetTOProperty方法无效上面可是花了好多时间理解