1

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

在我的 commonFunctions 我有以下代码:

Public PageA, PageB
Set PageA = Browser("A").Page("A")
Set PageB = Browser("A").Page("B")

在 ActionB(由 ActionA 调用)中,我使用了这些 Object 变量:

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 中定义?

我觉得这很简单,但我无法弄清楚。

4

2 回答 2

0

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

尝试明确给出条件,如:

If Browser("A").Page("B").Link.Exists Then
'~~~~~~~code

另外,这篇文章可能会有所帮助:

http://www.joecolantonio.com/2010/08/12/quicktest-object-recognition/

于 2013-06-14T20:02:16.930 回答
0

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

In Action 1 -
Set PageB = Browser("A").Page("B")
LocalParameter(param) = PageB 

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

这里的“LocalParameter”是 QTP 的 Utility Object,可用于将值从一个 Action 传递到另一个 Action。

于 2015-11-16T08:34:22.513 回答