Be the princess of myself
发布新日志
-
2007-09-03 11:09:04
从理论上来将,qtp是做的一个非常不错的工具,使用起来也非常方便,实现自动循环是一个非常基本的操作,但是,我在使用其进行循环的时候,遇到了以下问题:
循环时,经常是第一遍执行正常,第二遍的时候就出现找不到对象的错误,针对这个问题有以下方法可以避开。
对于b/s结构的应用程序:不用for循环语句,通过添加参数进行循环,好像就不会出现这个问题;
对于c/s结构的应用程序:
1、不是操作系统自带的应用程序
以qtp的自带的示例程序为例:
Dim oShell
Set ōShell = CreateObject ("Wscrīpt.shell")
oShell.run "cmd /K CD C:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app(程序路径) & flight4a.exe(程序可执行文件)"
Set ōShell = Nothing
问题:上面的程序可以打开一个非操作系统自带的应用程序,但是打开程序之后,出现一个命令行窗口,这样一来,每循环一次,会出现一个这样的窗口,我们如何关闭这个窗口呢?
解决方案:
步骤1:修改录制设置,设置为“在任何打开的基于windows的应用程序上录制并运行测试”;
步骤2:急于已经打开的窗口进行录制,且录制的最后应该关闭应用程序,然后停止录制;
步骤3:然后执行Window("C:\WINNT\system32\cmd.exe").close,将命令行窗口关闭
这样,再进行循环的时候就不会有问题了。
这里出现了一个疑问:我们为什么不在打开程序的一开始就将命令行窗口关闭呢?
原因:因为我们执行打开这个应用程序的语句之后,处于windows界面最前方的窗口是你的应用程序窗口,如果此时就执行关闭命令行窗口的语句,qtp会报找不到的窗口的错误。
2、打开一个操作系统自带的应用程序,以计算器为例:
set WshShell =CreateObject("Wscrīpt.Shell")
WshShell.AppActivate "计算器"——指定要激活哪个应用程序。它可以是包含应用程序的标题(和出现在标题栏中的一样)或过程 ID 的字符串(可以没有,它只是激活应用程序,保持应用程序在最前面)
WshShell.Run "calc"——打开计算器
注意:这种方法也使用于b/s结构的程序,只要把方法run的参数设置成为“IEXPLORE”就可以了。
按照以上的操作,在使用for循环就不会有问题了!
查看(1641)
评论(0)
收藏
分享
管理