在VBS中没有提供函数重载的功能,很大程度上造成了开发脚本的不便,但是在QTP中是可以将方法重载的。
两个方法:
1.注册
RegisterUserFunc TOClass, MethodName, FunctionName, [SetAsDefault]
- TOClass: 测试对象
- MethodName: 需要被重载的方法
- FunctionName: 封装的函数名
- SetAsDefault: 是否作为测试对象的标准方法
2.反注册
UnRegisterUserFunc TOClass, MethodName
- TOClass: 测试对象
- MethodName: 需要被释放重载的方法
实例:
对一个WebEdit的Set方法进行封装并重载,希望在这个WebEdit赋值前先记录下之前的值,代码如下:
Function
MySet(obj,x)
Dim
y
y=obj.GetROProperty(
"value"
)
Reporter.ReportEvent micDone,
"Input a new value"
,
"The previous value is: "
&y&
";The current input value is :"
&x
MySet=obj.
Set
(x)
End
Function
RegisterUserFunc
"WebEdit"
,
"Set"
,
"MySet"
Browser(
"micClass:=Browser"
).Page(
"micClass:=Page"
).WebEdit(
"micClass:=WebEdit"
,
"name:=wd"
).
Set
"Google"
UnRegisterUserFunc
"WebEdit"
,
"Set"
|
标签: