分析:
此脚本首先是调用了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}键,如果需要输入空格键,可以直接使用“ ”。