代码之家  ›  专栏  ›  技术社区  ›  nishit dey

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

  •  1
  • nishit dey  · 技术社区  · 6 年前

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

    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 回复  |  直到 6 年前
        1
  •  3
  •   Motti    6 年前

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