描述性编程对于那些测试对象经常动态变化的情况很有用,例如:
'激活Form1窗口
SwfWindow("Form1").Activate
SwfWindow("Form1").SwfButton("ON").Click
'通过正则表达式匹配窗口
FormName = "MyForm.*"--MyForm开头全部识别
'激活动态生成的窗口
SwfWindow("name:="&FormName,"text:="&FormName).SwfButton("text:=ON").Click
name与text两个属性一起来识别控件
补充一点:
描述性编程带有"后续强迫性";测试对像层次结核下的后续测试对像都要使用描述性编程完成;
技巧上;过长的描述性编程导致脚本过长;可以赋值解决
SwfWindow("name:="&FormName,"text:="&FormName).SwfButton("text:=ON").Click
SwfWindow("name:="&FormName,"text:="&FormName).SwfButton("text:=ON").Activate
SwfWindow("name:="&FormName,"text:="&FormName).SwfButton("text:=ON").Move 100,100
改后:
Set Newform=SwfWindow("name:="&FormName,"text:="&FormName)
Newform.Activate
Newform.Move 100,100
Newform.click
第二种更加简化代码
With SwfWindow("name:="&FormName,"text:="&FormName)
.Acticate
.Move 100,100
.Clik
End with
小技巧
屏蔽键盘与Mouse标 - : - systemutil.BlockInput
关闭进程:
systemutil.CloseDescendentProcesses 关闭所有QTP打开的进程
systemutil.CloseProcessByHwnd 关闭包含指定句柄的窗口的进程
systemutil.CloseProcessById 关闭指定进程ID的进程
systemutil.CloseProcessByName 关闭指定名称的进程
systemutil.CloseProcessByWndTitle 关闭拥有指定标题的窗口的进程
最后加一个全体注释
CTRL+M
取消
CTRL+Shift+M