5

私はこの.Exist方法でかなり作業しましたが、最近 QTP 11 を使用して (以前は QTP 10 を使用していましたが) 新しいプロジェクト (現在は WPF アプリケーションを使用) に移動しました。

を使用して、メッセージが存在しないことを確認したいと思いますobject.Exist(2)。奇妙なことに、予想していた 2 秒ではなく、約 23 秒後にしか結果が得られません。

タイムアウトはどのように機能しますか? 以前のプロジェクトでobject.Exist(2)は、オブジェクトが存在しないと判断する前に 2 秒待機していました。QTP ヘルプ ファイルには、2 秒 (指定されたタイムアウト パラメータ) だけ待機する必要があるとも書かれています。現在、タイムアウト パラメータ (2 秒) とオブジェクト同期タイムアウト (20 秒) を待っているように見えます。

また、Smart Identification は無効になっているため、それを待つべきではありません。オブジェクト リポジトリを使用してオブジェクトを強調表示すると、オブジェクトが存在しないことが即座に示されます。

QTP v10 と v11 の間でタイムアウトの動作は変更されましたか? オブジェクトが存在しないと言うのになぜそんなに時間がかかるのですか?

4

5 に答える 5

3

Exist メソッドは、最後のオブジェクトに対してのみ機能しません。これは階層的に機能します。つまり、このメソッドは、最後のオブジェクトをチェックする前に、各親オブジェクトをチェックします。タイムアウトは、最後のオブジェクトに対してのみ機能します。すぐに回答を受け取りたい場合は、次のコードを使用することをお勧めします-

if WPFWindow("x").Exist(0) Then
   if WPFWindow("x").WPFButton("y").Exist(0) Then
     'action 
   End if
End if
于 2015-02-16T07:09:24.220 に答える
0

オブジェクト リポジトリ内のテスト オブジェクトに対して「スマート識別」が有効になっていないことを確認してください。それは邪魔になる可能性があります。

于 2013-01-17T23:57:39.497 に答える