在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" |