3.5.3 获取当前路径CurrentDirectory
对于自动化测试脚本开发来说,相对路径也是一个比较常用的技术,不管是对于脚本移植,还是在自动化测试框架中都有着非常重要的意义。在WshShell中就有这样一个获取相对路径的方法,虽然知道在QTP中可以直接在folder里设置相对文件夹路径,但是本人认为,在一些特殊应用中,如在自己搭建框架时,或者需要使用脚本来获取相对路径时,再或者在纯VBS环境下等,这些都是QTP无法做到的。除此之外,利用WshShell也是非常方便的。(后续章节会讲解如何使用fso的getfile方法来获取文件的相对路径)
● 语法:
object.CurrentDirectory |
● 参数:
无。
● 返回值:
布尔类型,如果当前窗口被激活,返回True,反之则返回False。
实例:实现相对路径。
首先建立一个文件夹,在文件夹下同级目录建立两个VBS,一个命名为main.vbs,另一个命名为msg.vbs,在msg.vbs中输入一个msgbox“zzxxbb112”并保存,如图3-45所示。
图3-45
接着在main.vbs中输入以下脚本:
'创建WshShell对象 Set wshShell = CreateObject("wscript.shell") '获取相对文件夹 RelativeFolder = wshShell.CurrentDirectory '拼装需要执行文件的相对路径 msgVbsPath = RelativeFolder + "\msg.vbs" '运行msg.Vbs wshShell.Run msgVbsPath '释放对象 Set WshShell = Nothing |
分析:
此脚本首先是调用了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)就是其中一个,表示为引号,这样就可以把相对路径成功转化为字符串方式来运行,也就不会报错了。
......
更多详情请关注51Testing网站丛书连载:http://www.51testing.com/html/88/category-catid-188.html
本文选自《51Testing软件测试作品系列》之九——《精通QTP——自动化测试技术领航》。
版权声明:51Testing软件测试网获人民邮电出版社和作者授权独家连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
相关阅读: