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

发表于:2012-2-22 11:10

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

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

分享:

  分析:

  此脚本首先是调用了currentDirectory方法,获取了当前执行VBS文件的父文件夹,接着拼接需要执行的vbs文件路径后,执行此msg.vbs文件。在完成了以上脚本后,其实就已经实现了路径参数化,也就是相对路径。可以直接复制父文件夹到任何路径下来执行Main.vbs。但是注意,如果路径中间出现的文件夹名存在空格,这种情况下会出现路径找不到的情况,例如,类似这样的路径“C:\Documents and Settings\Administrator\桌面\zzxxbb112 ”,因为WshShell.run方法必须保证路径中的文件夹名字不含有空格字符,否则就会报类似这样的错误,如图3-46所示。

图3-46

  如果要解决这问题,必须避免空格的直接输入,解决方案为。

  ● 引号转化字符串。

  办法其实很简单,由于此处不能直接输入空格,可以使用字符串形式,这样run命令就会把此路径作为一个整体,这样就顺利解决了问题,来看一下脚本:

'创建WshShell对象

Set wshShell = CreateObject("wscript.shell")

'获取相对文件夹路径

RelativeFolder = wshShell.CurrentDirectory

'拼接相对路径

msgPath = RelativeFolder + "\msg.vbs"

'加入引号转化相对路径为字符串

chrMsgPath = Chr(34) & msgPath & Chr(34)

'运行相对路径下的main.vbs

wshShell.Run chrMsgPath

'释放对象

Set wshShell = Nothing

  分析:

  此处脚本只是加入了chr(34),由于脚本中需要加入引号时不可以直接添加,因此,VBS特别设立了一些特殊符号的输入,chr(34)就是其中一个,表示为引号,这样就可以把相对路径成功转化为字符串方式来运行,也就不会报错了。

3.5.4  最常用的sendkeys发送

  这一小节是本章的重点,虽然比较简单,但在自动化测试中往往能够解决很多难题,例如,当对象无法识别但是又需要在此对象中输入字符串时,即可先想办法点击此对象,然后使用sendkeys发送键值,又或者当遇到需要使用快捷键时,同样也可以使用sendkeys方法,当然它也支持一些特殊键,如alt、ctrl、shift等。首先来看一下sendkeys的语法。

  ● 语法:

object.SendKeys(string)

  ● 参数:

  String表示需要发送的字符串,以及一些特殊键盘。

  ● 返回值:无。

  实例1:模拟输入字符串。

'创建WSH对象

Set oWshShell = CreateObject("wscript.shell")

'启动notepad记事本应用

oWshShell.Run "notepad"

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

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

'发送字符串:zzxxbb112

oWshShell.SendKeys "zzxxbb112"

'发送回车键:{enter}

oWshShell.SendKeys "{enter}"

'发送字符串QuickTest

oWshShell.SendKeys "QuickTest"

'释放对象

Set oWshShell = Nothing

  分析:

  执行完脚本后,可以看到打开了笔记本后,输入zzxxbb112、输入回车、输入QuickTest,此处{enter}代表回车符。

  注意:不存在{Space}键,如果需要输入空格键,可以直接使用“ ”。

42/4<1234>
100家互联网大公司java笔试题汇总,填问卷领取~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号