51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3257|回复: 12
打印 上一主题 下一主题

[原创] [已解决]Settings->Resources里面文件中的函数如何使用

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-6-1 14:03:27 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
我在
test Settings->Resources里面包含一个公共函数库.用vbs脚本写的.

但是
我Call vbs脚本里的函数,会提示"类型不匹配"

只有先
executefile "D:\QTP\file\funaction.vbs"
后再call 函数才能正常使用

所以我的问题就是怎么使用 test Settings->Resources里面包含文件中的函数

解决办法在下面的回复中,哈


[ 本帖最后由 onlonely 于 2009-6-26 10:20 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

13#
 楼主| 发表于 2009-6-26 10:24:43 | 只看该作者

回复 12# 的帖子

熊猫真是厉害.点醒了我.
现在总算解决了.

其实解决方法和我曾经遇到的EXCEL导入不进去有着异曲同功的感觉.
是这样的,
因为我这个vbs文件是我用文本文档直接编写的.改后缀成vbs的.

出这个问题的根本原因可能是编码的问题,
解决办法是:
你只要用QTP打开这个vbs文件,然后任意修改点内容,再保存下,就可以不包含就能使用了.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2009-6-25 14:32:26 | 只看该作者
抛type mismatch,可能原因很多。
就你这种情况,我估计是QTP没有在加载的vbs文件里找到你那个function。
至于为什么没找到,可能是8楼说的原因。
你把那个vbs文件直接用qtp打开能不能正常显示?
看到executefile后能执行,我又怀疑有没有同名的function在不同的vbs文件里。
说了也白说,问题还是要你自己解决,搞定后别忘了发攻略。::yxiao:::
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2009-6-25 13:20:06 | 只看该作者
好久了.没有人有解决方法的么
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2009-6-7 20:27:27 | 只看该作者

回复 9# 的帖子

还是不行....

依然如果不ExecuteFile一下就不能使用

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2009-6-6 12:18:12 | 只看该作者
我不知道我说的对你是否有用,我以前遇到过这样一种情况,如果你的VBS脚本的编码是unicode的话会出问题,保存为ANSI的就没有问题,你可以check下是否这个原因。
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2009-6-6 08:03:18 | 只看该作者

回复 7# 的帖子

如附件,加载,路径都不可能错的,QTP也正确识别了.
只是,如果不先ExecuteFile就不能使用

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2009-6-5 16:14:17 | 只看该作者
原帖由 heqingbluesky 于 2009-6-1 15:30 发表
1.在Resource里面加载VBS文件

2. 在调用VBS文件里面的Function前,使用executefile编译这个文件。

这位仁兄的意思应该是这两种方法都可以 并不是加载了之后再用executefile来编译
如果楼主在Resource中加载了VBS文件应该可以直接调用的 楼主可以检查一下Resource中文件路径是否正确
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2009-6-4 09:07:24 | 只看该作者

回复 5# 的帖子

代码本身没有问题的,都能使用,,如下面这样的
Function Case_Path()
        dim strPath
       
        strPath = environment("TestDir")
        Set objFSO = CreateObject("Scripting.FileSystemObject")
        case_path = objFSO.GetParentFolderName(strPath)
        Set objFSO = Nothing
        'msgbox("函数里面"&path)
end Function
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2009-6-3 10:57:38 | 只看该作者
如果你已经在Resource中正确加载VBS文件了,那该文件会在QTP开始RUN的时候预先被执行,相当于在QTP的第一行就执行Executefile。建议LZ再好好检查下自己的代码。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2009-6-1 18:01:05 | 只看该作者

回复 3# 的帖子

加载,再编译...
这样还不如直接executefile好了.
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2009-6-1 15:30:54 | 只看该作者
1.在Resource里面加载VBS文件

2. 在调用VBS文件里面的Function前,使用executefile编译这个文件。
回复 支持 反对

使用道具 举报

该用户从未签到

2#
发表于 2009-6-1 14:32:26 | 只看该作者
类型不匹配,应该是没有正确加载到函数体引起的. 个人感觉还是用语句加载,灵活性更大一些.
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-27 15:51 , Processed in 0.076747 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表