快乐的周末给评论者:)当我试图覆盖 UFT
中的方法时,我遇到了link
,Image
& 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
如果这是一种使用方法的书写方式,你能帮我解释一下吗?
答案 0 :(得分:1)
脚本,就像每个脚本一样,从上到下执行。
当
Browser(WTMSBrwsr).Page(WTMSPge).Link(OdescLnk).fnBtnClick
执行后,它会查找该函数的注册,但这不存在,因为代码
RegisterUserFunc "WebButton", "fnBtnClick", "fnBtnClick"
RegisterUserFunc "Link", "fnBtnClick", "fnBtnClick"
RegisterUserFunc "Image", "fnBtnClick", "fnBtnClick"
尚未执行。
因此,将RegisterUserFunc
电话移到顶部,它会起作用。
如果在RegisterUserFunc
调用中引用其名称之前声明该函数,它也可能会提高代码的可读性,因此更好地将函数定义移到顶部。