在UFT 12.51中覆盖方法时出现未知错误

时间:2015-12-11 13:10:43

标签: qtp hp-uft

快乐的周末给评论者:)当我试图覆盖 UFT 中的方法时,我遇到了linkImage& button。我在脚本执行过程中遇到一个未知错误。如果有人可以指导我,会有所帮助。以下是我的代码

' Creating Browser description
' "title:=Work Transfer Management System - WTMS"

Set WTMSBrwsr = Description.Create
WTMSBrwsr("title").Value = "Work Transfer Management System - WTMS"


' Creating Page description
' "title:=Work Transfer Management System - WTMS"

Set WTMSPge = Description.Create
WTMSPge("title").Value = "Work Transfer Management System - WTMS"

'Creating link description

set OdescLnk= Description.Create
OdescLnk("Link").value="Engineering Work Placement"
OdescLnk("html tag").value="A"

Browser(WTMSBrwsr).Page(WTMSPge).Link(OdescLnk).fnBtnClick

'function Lib
RegisterUserFunc "WebButton", "fnBtnClick", "fnBtnClick"
RegisterUserFunc "Link", "fnBtnClick", "fnBtnClick"
RegisterUserFunc "Image", "fnBtnClick", "fnBtnClick"

'Function Definition
Function fnBtnClick(objControl)
    'Check if object exists
    If objControl.Exist Then
        'Check if the object is enabled or not
        If objControl.GetROProperty("disabled") <> 0 Then
            'Click on the button
            objControl.Click
        End If
    End If
End Function

错误发生在Browser(WTMSBrwsr).Page(WTMSPge).Link(OdescLnk).fnBtnClick 如果这是一种使用方法的书写方式,你能帮我解释一下吗?

1 个答案:

答案 0 :(得分:1)

脚本,就像每个脚本一样,从上到下执行。

Browser(WTMSBrwsr).Page(WTMSPge).Link(OdescLnk).fnBtnClick

执行后,它会查找该函数的注册,但这不存在,因为代码

RegisterUserFunc "WebButton", "fnBtnClick", "fnBtnClick"
RegisterUserFunc "Link", "fnBtnClick", "fnBtnClick"
RegisterUserFunc "Image", "fnBtnClick", "fnBtnClick"

尚未执行。

因此,将RegisterUserFunc电话移到顶部,它会起作用。

如果在RegisterUserFunc调用中引用其名称之前声明该函数,它也可能会提高代码的可读性,因此更好地将函数定义移到顶部