我在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中定义?
我觉得这很简单,但我无法理解。
答案 0 :(得分:0)
问题似乎不是范围,而是有时QTP无法识别页面对象。
尝试明确地给出条件:
If Browser("A").Page("B").Link.Exists Then
'~~~~~~~code
此外,本文可能会有所帮助:
http://www.joecolantonio.com/2010/08/12/quicktest-object-recognition/
答案 1 :(得分:0)
要将数据从操作1传递到操作2,您需要输入/输出参数。它并不取决于变量的类型(Public,...)。
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的实用程序对象,可用于将值从一个Action传递到另一个Action。