写脚本的时候,当系统发生页面跳转或是当前操作有返回结果需要等待的时候,需要对是否到达预期页面或预期结果是否返现进行验证,否则很容易出现脚本运行失败的情况。
以下是几种常用check方法。
1. QTP自带Sync方法
SystemUtil.Run "iexplore.exe", "http://www.google.com"
Browser("Google").Page("Google").Sync
与这种方式有关的设置如图。
本文出自jifeng的51Testing软件测试博客:http://www.51testing.com/?92935
2. WaitProperty 方法
这个也是支持的一种方法,等待指定对象属性获得指定值或超出指定超时后再继续下一步。原型object.WaitProperty (PropertyName, PropertyValue, [lTimeOut]),帮助文档对各个参数有详细说明。TimeOut如果不指定也会使用上图中的设置。
If Browser("百度一下,你就知道").Page("百度一下,你就知道").WaitProperty("title","百度一下,你就知道",1000) Then '后续操作 End If |
3. 利用Dom和RegExp检索
这种方法利用Dom的createTextRange方法获得页面文本,再结合正则表达式进行检索,判断页面是否有预期的结果。
set a=Browser("百度一下,你就知道").Page("百度一下,你就知道").Object.body.createTextRange() c=Check (a,"知 道") msgbox c '检索函数 'Obj 检索的对象 'checkStr 检索的字符串 Public Function Check(ByRef Obj, ByRef checkStr) b=Obj.text Set regEx=new RegExp regEx.Pattern=checkStr '设置需要查找的字符串 regEx.IgnoreCase=true regEx.Global=true Check = regEx.Test(b) '在页面的文本中检索预期值,返回布尔值 End Function |
正则表达式可以参考QTP安装目录help下的VBScript56.CHM文档。