如何在QTP中使对象全局可用

时间:2015-09-01 04:11:06

标签: function vbscript dynamic-programming qtp

在以下代码中:

systemutil.Run "C:\Program Files\HP\Unified Functional Testing\samples\flight\app\flight4a.exe"

WinEdit
WinButton


Public Function WinEdit
  Set objDialog=Description.Create
  objDialog("micclass").value="Dialog"

  Set objWinEdit=Description.Create
  objWinEdit("micclass").value="WinEdit"

  set WinEditCount=Dialog(objDialog).ChildObjects(objWinEdit)
  msgbox WinEditCount.count
End Function

Public Function WinButton
  Set objWinButton=Description.Create
  objWinButton("micclass").value="WinEdit"

  set WinButtonCount=Dialog(objDialog).ChildObjects(objWinButton)
  msgbox WinButtonCount.count   
End Function

WinEdit函数中生成的对象仅限于该函数。我想使用WinEdit函数中创建的对象在WinButton函数中重用。

2 个答案:

答案 0 :(得分:0)

功能的全部意义在于封装逻辑。如果你在一个函数中声明一个变量,它默认是对这个函数是私有的,你可以在全局声明它,但这通常是不鼓励的,因为它会在函数之间创建依赖关系。

您可以执行以下操作(只会初始化desc一次)。

Foo
Bar

Dim desc ' global variable

Private Function InitDesc
    If IsEmpty(desc)  Then
        Set desc= Description.Create()
    End If
End Function

Public Function Foo
    InitDesc

End Function

Public Function Bar
    InitDesc
End Function

答案 1 :(得分:0)

为对象变量指定一个唯一的名称,将其放在记事本文件中并将该文件与脚本相关联

相关问题