2

QTP では、特定のオブジェクトがオブジェクト リポジトリに存在するかどうかを確認するコード内の方法があります。次のコードを試しました:

If JavaWindow(className).JavaDialog(dialogName).Exist Then
    doThisStuff
Else
    doThisStuffInstead
End If

しかし、私がインターネットから得た情報によると、これは isVisible メソッドに似ており、指定されたオブジェクトが現在表示されている場合にのみ true になります。上記のコードを使用すると、「JavaDialog object was not found in the Object Repository.」というメッセージが表示されます。このエラーを防止し、オブジェクトが実際に存在するかどうかを確認する方法または方法はありますか?

お時間をいただきありがとうございます

4

2 に答える 2

3

ここで何を達成しようとしているのかわかりません。通常、オブジェクトを使用する前に、オブジェクトがオブジェクト リポジトリに存在するかどうかがわかります。通常、AUT (Application Under Test) に対応するコントロールがあるかどうかが疑わしい。

オブジェクトがリポジトリにある場合とそうでない場合があるという状況に実際に直面している場合 (これが発生する方法はいくつか考えられますが、どれもあまり意味がありません)、VBScript のエラー処理メカニズムを使用できます。

On Error Resume Next ' Turn off error handling
' Just check if object is in repository, there's no need to do anything with it
Dim Exists: Exists=JavaWindow(className).JavaDialog(dialogName).Exist
If Err.Number <> 0 Then
    doThisStuff 'Exists is still empty
Else
    doThisStuffInstead ' Exists is properly set
End If
On Error Goto 0 ' Resume regular error handling
于 2012-11-01T22:13:32.917 に答える
0

したがって、表示されるエラーから、表示されるダイアログは、リポジトリに保存したものとは異なるか、そこにありません。リポジトリに実際に存在することを確認しましたか? この要素ボタンを見つけてみてください。「オブジェクトがリポジトリにない場合-ステップをスキップする」という方法を使用することは、実際には良い考えではありません。1.オブジェクトがリポジトリに保存されていない場合、テスト/テストの一部をスキップしたいのはなぜですか? 2. ない場合は、必ず保管してください。

この「欠落している」オブジェクトには、テストごとに異なるリポジトリのオブジェクトと一致する値がある可能性があると思います。QTP が検索する値を手動で設定することにより、「マッチング」メカニズムを調整できます。

于 2012-11-02T09:29:22.313 に答える