如果我们选择一个Page对象,然后继续,QTP就会询问我们是否要添加它的子对象。
图 3-4. 对象选择
选择Selected object and all its descendants这个单选按钮,然后点击OK, 页面上所有的对象都会被添加到对象库中去。
提示:对象库不能添加页面上的隐藏对象。
测试对象和运行时对象
测试对象(TO):测试对象是QTP定义的一些类,用它们来代表被测应用的各种对象。
运行时对象(RO):运行时对象是实际的被测应用的对象,是测试执行过程中,TO用来关联的对象。
理解这两种对象类型的区别是非常重要的。可以看成两辆车;车A和车B,QTP能在脚本里用一辆车的测试对象来描述出两辆车A和B。除此之外,每个测试对象也提供了用来和运行时对象交互时相关联的方法和属性。
比如Start,Run和Stop都是汽车对象提供的有用的方法。
TO属性
测试对象的属性是QTP为了识别在测试执行过程中的运行时对象而保留在对象库中的属性。QTP提供GetTOProperties方法来列举对象的所有的TO属性.GetTOProperty和SetToProperty则分别用了读取和修改TO的属性值。
问题 3-1. Test Object 属性的使用
'获取webeidt对象 Set oWebEdit = Browser("").Page("").WebEdit("") '获取webedit对象封装属性集合 Set TOProps = oWebEdit.GetTOProperties() Dim i, iCount iCount = TOProps.Count - 1 '遍历所有封装属性 For i = 0 ToiCount '获取属性名 sName = TOProps(i).Name '获取属性值 sValue = TOProps(i).Value '检查是否为正则表达式 isRegularExpression = TOProps(i).RegularExpression '显示结果 MsgboxsName&"->" &sValue&"->" &isRegularExpression Next |
问题 3-2. 运行时改变Test Object 属性
'获取webedit对象 Set oWebEdit = Browser("Browser").Page("Page").WebEdit("txtName") '获取webedit的name封装属性值 oldName = oWebEdit.GetTOProperty("name") '变更webedit对象的name封装属性 oWebEdit.SetTOProperty"name","new value" '获取已修改的属性 newName = oWebEdit.GetTOProperty("name") MsgBoxnewName |
问题 3-3. 测试中获取运行时对象属性
'x为WebEdit对象运行时的value属性值 x = Browser("").Page("").WebEdit("").GetROProperty("value") MsgBoxx |
提示:QTP不提供修改运行时对象属性的方法。换言之,没有SetROProperty这个方法。同样, 不同的测试对象都有一个它支持的属性列表,在QTP帮助的对象模型参考中可以找到。