带有传递对象的用户定义函数

User Defined Function with Passing Object

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

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

出现以下错误

Object doesn't support this property or method: 'Browser(...).Page(...).WebEdit(...).cSet

我不清楚你想在这里实现什么。 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"