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メソッドよりも少し遅くなります。

于 2013-04-17T07:36:25.223 に答える
0

TypeName() 関数は、RegExp の場合は「IRegExp2」など、オブジェクトの型名を (ほぼ) 返す必要があります。

于 2013-04-16T23:01:54.803 に答える