【QTP】使用自定义Class类出现“类没有被定义”的解决办法小结
2013-02-05 10:33
337 查看
在脚本的编写中,我们经常会遇到自定义类,在使用自定义类中,会遇到一些问题:无法new自定义类,报错的现象。
来模拟一下场景:新建了一个脚本文件Action1,并加载一个Function.vbs文件。
脚本:
分析:
1. 将所有脚本写入Action1中,运行,发现脚本Pass。
2. 将【Class脚本段】放入Function.vbs中,运行脚本,报“类没有被定义”的错,Fail。
3. 将【实例化脚本段】和【Class脚本段】都放入Function.vbs,脚本运行Pass。
小结:
【1】
所以单从位置上来说,要么【实例化脚本段】和【Class脚本段】都放在Action下,是可行的。
【2】
要么【实例化脚本段】和【Class脚本段】都放在Function.vbs下,运行不会出错。
【3】:
又想要将Class写入外部文件,又不想直接实例化。当然,还有些别的方法:
将【Class脚本段】写入Function.vbs中,并在Function.vbs中写入:
这样,在Action1中只要这么写:
也是可以正常使用的。
【4】
也可以不使用自带的添加Function.vbs文件到Function Libraries中,而是使用ExecuteFile的方法动态添加。
在Action1中写入:
这样就不需要写Function newTest()函数,便可在所有地方进行new自定义类了。
来模拟一下场景:新建了一个脚本文件Action1,并加载一个Function.vbs文件。
脚本:
'实例化脚本段 Dim myTest Set myTest = new Test myTest.T1 Set myTest = Nothing 'Class脚本段 Class Test Function T1 msgbox "Test" End Function End Class
分析:
1. 将所有脚本写入Action1中,运行,发现脚本Pass。
2. 将【Class脚本段】放入Function.vbs中,运行脚本,报“类没有被定义”的错,Fail。
3. 将【实例化脚本段】和【Class脚本段】都放入Function.vbs,脚本运行Pass。
小结:
【1】
所以单从位置上来说,要么【实例化脚本段】和【Class脚本段】都放在Action下,是可行的。
【2】
要么【实例化脚本段】和【Class脚本段】都放在Function.vbs下,运行不会出错。
【3】:
又想要将Class写入外部文件,又不想直接实例化。当然,还有些别的方法:
将【Class脚本段】写入Function.vbs中,并在Function.vbs中写入:
'===================== 'Test实例化的函数 '===================== Function newTest() Set newTest = new Test End Function
这样,在Action1中只要这么写:
'实例化脚本段 Dim myTest Set myTest = newTest myTest.T1 Set myTest = Nothing
也是可以正常使用的。
【4】
也可以不使用自带的添加Function.vbs文件到Function Libraries中,而是使用ExecuteFile的方法动态添加。
在Action1中写入:
ExecuteFile "D:\Test\Function.vbs"
这样就不需要写Function newTest()函数,便可在所有地方进行new自定义类了。
相关文章推荐
- Asp.Net WebApi 使用OWIN架构后,出现 “没有 OWIN 身份验证管理器与此请求相关联” 异常的解决办法
- Google Map API使用中出现的“google未定义”解决办法
- 服务器共享文件夹后,客户端出现“您可能没有权限使用网络资源”提示的解决办法
- JS中使用window.open(url,..);开启新窗口时,传参url没有乱码,但是传到后台出现乱码 解决办法
- Xcode8.x使用CoreData模型出现类被非法重定义的解决办法
- C++中使用类模板定义对象时出现:“error LNK2019: 无法解析的外部符号”的解决办法
- Xcode8.x使用CoreData模型出现类被非法重定义的解决办法
- Xcode8.x使用CoreData模型出现类被非法重定义的解决办法
- VC++6.0使用GDI++出现'ULONG_PTR'未定义和'token' 未定义的解决办法
- rails 4.0 中使用 cap 发布的时候,出现 LD_LIBRARY_PATH 没有设置的问题 的解决办法
- Win7电脑开启局域网连接和共享过程中出现的"您可能没有权限使用网络资源"的解决办法
- 使用fragment加载自定义fragment出现error inflating class fragment错误解决办法(有效)
- Xcode8.x使用CoreData模型出现类被非法重定义的解决办法
- Xcode8.x使用CoreData模型出现类被非法重定义的解决办法
- 使用Asp.net Ajax时出现'Sys'未定义错误的解决办法
- AjaxPro.2.dll使用中出现页面未定义错误的解决办法
- 使用笔记本分享热点点击命令出现,“netsh”不是内部或外部命令,也不是可运行的程序或批处理文件解决办法
- 使用Asp.net MVC 2.0 +.NET 4.0 出现 “从客户端 ... 中检测到有潜在危险的 Request.Form 值”错误的解决办法
- strut2中使用ajax主题时出现 template/ajax/head.ftl. 错误的解决办法
- 使用Genymotion调试出现错误INSTALL_FAILED_CPU_ABI_INCOMPATIBLE或者抛出UnsatisfiedLinkError异常的解决办法