= = = = 2007/07/18 = = =关于应用程序菜单的录制问题:
应用程序菜单由于直接录制会有记录不到对象的问题,鼠标click事件无法回放。在网上找了不少资料综合了一下终于是把问题解决了。
首先是录制对象的问题,如果录制时候脚本没记录,可以试下双击该控件,QTP就会自动把控件录制到脚本内,以及在对象仓库里添加该对象。
再就是菜单选择的问题,也看了不少方法最后发觉是用VBscrīpt的方法比较好也简单,具体Code如下:
Window("XXX").WinObject("MenuBar_2").Click 32,11 '点击菜单栏
'vb脚本实现选择菜单
index = 6 '退出操作在菜单的第六个项
Set WshShell = CreateObject("Wscrīpt.Shell")
For i = 1 To index
WshShell.sendKeys "{DOWN}" '在弹出的右键菜单中依次下移到第六个
Next
WshShell.sendKeys "{ENTER}" '选择退出操作
wait (1)
Set WshShell = nothing '清空WshShell对象
该脚本解决了应用程序使用菜单退出的功能。
= = = = 2007/07/23 = = =关于计时器的问题:
使用QTP进行回放时候,需要记录某段操作的时间,一般可以使用事务,再QTP自动生成的报告中可以查看到消耗的时间,但是为了自动化,需要将数据直接倒出成xls的文件,事务的时间值取不出来,后来找到可以用Timer这个计时器。
class=codeFunction TimeIt(N)
Dim StartTime, EndTime
StartTime =Timer
For I = 1 To N
Next
EndTime =Timer
TimeIt = EndTime - StartTime
End Function
帮助中说明Timer的用法是这样的。我自己修改后录制的代码如下:
var_StartTime = Timer '计时开始,注意此计时器不会在QTP报告中显示
If window("text:=XXX").Exist(10) Then
var_EndTime = Timer '计时结束
runTime = round ((var_EndTime - var_StartTime),3 )
数字3表示精确到小数点后3位的意思,这个计时器可以很方便的判断一个对象从没有到存在需要多少时间,而且可以轻易实现数据导出!
= = = = 2007/07/23 = = =关于数据导出的问题:
接着上一个问题,在缺得了runTime得数据之后,要导出到数据表中,之后再把数据表保存成为一个xls的文件,代码如下:
DataTable.Value ("启动使用时间", "Action1") = runTime '把runTime的值放在DataTable里
DataTable.SetCurrentRow (j+2)
DataTable.ExportSheet xlsPath, 2 '数据保存成文件
"启动使用时间"表示列的名字;"Action1"数据表的名字;j表示循环次数,+2之后可以把数据自动保存到下一行去。
= = = = 2007/07/23 = = =关于回放过程中某些程序会卡死的问题:
回放脚本时候不知道是什么原因,IE时常会卡死,关闭不了,对脚本的循环造成影响,这样的话QTP有个关闭进程的的功能,具体代码如下:
Window("Microsoft Internet Explorer").Close '关闭IE
If Window("Microsoft Internet Explorer").Exist(1) Then
SystemUtil.CloseProcessByName "IEXPLORER.EXE" '有时候IE会卡死,如果卡死强制关闭
End If
首先正常关闭,再判断如果对象还存在的话,直接杀进程!