WshShell对象常用方法介绍——精彩抢先看

发表于:2012-1-11 10:54

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

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

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软件测试网获人民邮电出版社和作者授权独家连载本书部分章节。

任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。

相关阅读:

查看本书介绍>>

查看本书更多试读章节连载>>

查看软件测试作品系列其他书籍>>

33/3<123
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号