51Testing丛书连载:(四十九)精通QTP——自动化测试技术领航

发表于:2012-2-21 13:26

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:余杰 赵旭斌    来源:51Testing软件测试网

分享:

3.5.2  激活窗口AppActivat

  窗口的激活经常会在自动化测试过程中被使用到,特别是在需要同步等待测试对象时,有时页面需要一定的切换时间,往往很多新手会认为,加适当的等待时间即可解决此问题,其实这样的想法绝对是错误的,因为测试机本身可能会出现不稳定的情况,举个例子,当一台测试机运行时间比较长了,或者此测试机正在做可靠性测试需要执行上千次脚本,那么此时用wait是比较危险的,其关键原因是因为,任何时候切换页面的间隔时间都是不等的,如果wait时间设置短了,可能由于计算机运行的次数太多,内存积攒多导致切换时间超过了wait时间,而如果wait时间太长,会浪费太多的时间。不管哪种方式都不是一个非常可取的办法,如果加入循环等待页面切换直到切换成功,这样便可更好地提高代码的执行效率。因此,循环判断页面切换是否成功就成了关键,WshShell对象就提供了这样一个非常有用的功能。

  ● 语法:

object.AppActivate title

  ● 参数:

  Title为需要激活窗口的title属性值,也就是标题或者是Process ID。

  ● 返回值:

  布尔类型,如果当前窗口被激活,返回True,反之返回False。

  实例:

  完成一个打开记事本,循环判断其是否被激活,一旦窗口被激活成功之后即输入 字符串“zzxxbb112”。

'创建WSH对象

Set oWshShell = CreateObject("wscript.shell")

'启动notepad记事本应用

oWshShell.Run "notepad"

'循环等待记事本页面是否被激活,没有激活就一直循环直到激活为止

While Not oWshShell.AppActivate("无标题 记事本") : Wend

'发送字符串zzxxbb112

oWshShell.SendKeys "zzxxbb112"

'释放对象

Set oWshShell = Nothing

  分析:

  执行以上脚本后可以看到,脚本自动启动了记事本后,在记事本中输入了zzxxbb112字符串,看似非常简单,其实对于新手来说还是比较容易出错,如果此处没有“While Not oWshShell.AppActivate("无标题?-?记事本") : Wend”这一步骤,zzxxbb112可能就无法输入到被打开的记事本中去,接下来我们就仔细探究竟。

  比较两个脚本的运行结果。

  (1)脚本1:

'创建WSH对象

Set oWshShell = CreateObject("wscript.shell")

'启动notepad记事本应用

oWshShell.Run "notepad"

'激活记事本窗口

oWshShell.AppActivate("无标题 记事本")

'提示消息框

Msgbox  suc

'释放对象

Set oWshShell = Nothing

32/3<123>
重磅发布,2022软件测试行业现状调查报告~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号