用户定义的函数和传递对象

时间:2018-07-17 04:40:55

标签: vbscript qtp

我只是想帮助创建自己的函数,该函数将对象作为参考传递。

Set Pg = Browser("Browser").Page("Login")
Pg.WebEdit("loginForm:userName").cSet("user1")

Public Function cSet(obj, val)
    If IsOBject(Obj) Then  ''Here obj is WebEdit("loginForm:userName")
        Obj.Set val  '''Here val is user1
    Else
        Reporter.ReportEvent micFail,"Failed","Object not found"
    End If
End Function

出现以下错误

  

对象不支持此属性或方法:'Browser(...)。Page(...)。WebEdit(...)。cSet

1 个答案:

答案 0 :(得分:3)

我不清楚您要在这里实现什么。 WebEdit已经具有Set函数,如果该对象不存在,该函数将失败。

在任何情况下,UFT都允许为特定的测试对象添加(或覆盖)功能,请参见RegisterUserFunc的文档。

例如,如果对象不存在,UFT将等待其存在,直到超时为止。如果对象不存在,您可以告诉UFT立即失败。

' Define the function
Function QuickSet(ByRef obj, ByVal value) 
    If Not obj.Exist(0) Then ' zero means don't wait 
        Reporter.ReportEvent micFail, "QuickSet", "Object does not exist"
        Exit Function
    End If
    obj.Set value   
End Function

' Register the function to WebEdit as a new function
RegisterUserFunc "WebEdit", "QuickSet", "QuickSet"

' Or override the default behaviour of Set
RegisterUserFunc "WebEdit", "Set", "QuickSet"