2

我正在尝试开发一个通用注册函数来验证给定对象的存在,然后在报告中添加一行来说明它是否被发现。

这是功能:

'@Description Reports in the test results whether the given object exists.
Public Function verifyExistence(ByRef test_object)
    If test_object.Exist(1) Then
        Reporter.ReportEvent micPass, "Verify that the page exists.", "Page exists."
    Else
        Reporter.ReportEvent micFail, "Verify that the page exists.", "Page does not exist."
    End If
End Function
RegisterUserFunc "Page", "verifyExistence", "verifyExistence"

这适用于 Page 对象,但我如何“泛化”它以便它可以与任何对象类型一起使用?我意识到我需要为每个对象类型添加一个 RegisterUserFunc 行。

理想情况下,我会有一条如下所示的行:

typename = getType(test_object)
if typeName = "Page" Then
    objName = test_object.GetROProperty("title")
    ... 'and so on.
end if
4

2 回答 2

3

尝试使用test_object.GetTOProperty("micclass")测试对象的名称。某些动态对象(例如从 中返回的对象ChildObjects)可能没有在 QTP 端设置此属性,在这种情况下您应该这样做test_object.GetROProperty("micclass")

RO方法应该始终有效,但它比TO方法要慢一些,而 TO 方法几乎应该始终有效。

于 2013-04-17T07:36:25.223 回答
0

TypeName() 函数应该(几乎)返回对象的类型名称,例如 RegExp 的“IRegExp2”。

于 2013-04-16T23:01:54.803 回答