在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" |
标签: