Vbscript 内部操作无法识别公共对象

Vbscript 内部操作无法识别公共对象,vbscript,qtp,Vbscript,Qtp,我正在QTP中创建一个脚本,它有一些内部操作(ActionA、ActionB…),并且我有一个关联的函数库commonFunctions.vbs 在我的commonFunctions中,我有以下代码: Public PageA, PageB Set PageA = Browser("A").Page("A") Set PageB = Browser("A").Page("B") 在ActionB(ActionA称之为ActionB)中,我使用了以下对象变量: If PageB.Link("so

我正在QTP中创建一个脚本,它有一些内部操作(ActionA、ActionB…),并且我有一个关联的函数库commonFunctions.vbs

在我的commonFunctions中,我有以下代码:

Public PageA, PageB
Set PageA = Browser("A").Page("A")
Set PageB = Browser("A").Page("B")
在ActionB(ActionA称之为ActionB)中,我使用了以下对象变量:

If PageB.Link("someLink").Exist Then
    PageB.Link("someLink").Click
End If
ActionA和ActionB都有变量使用的对象存储库

运行测试时,出现以下错误:

Object doesn't support this property or method: 'PageB.Link'
Line (4): "If PageB.Link("someLink").Exist Then". 
我错过了什么?为什么ActionB中没有定义变量


我觉得这很简单,但我无法理解。

问题似乎不是范围,而是有时QTP无法识别页面对象

尝试明确给出条件,如:

If Browser("A").Page("B").Link.Exists Then
'~~~~~~~code
此外,本文可能会有一些帮助:


要将数据从操作1传递到操作2,需要输入/输出参数。它不取决于变量的类型(Public,…)


这里的“LocalParameter”是QTP的实用对象,可用于将值从一个动作传递到另一个动作。

明确地说,它工作得很好,我只是想让它更容易编码,看起来更干净
In Action 1 -
Set PageB = Browser("A").Page("B")
LocalParameter(param) = PageB 

In Action 2 -
Set PageB =LocalParameter(param)
PageB.Link("someLink").Click