1

QTP11 を使用して、開いているすべてのブラウザ オブジェクトを取得しようとしています。私が使用するコードは次のとおりです。

Set descBrowser = Description.Create
descBrowser("micClass").Value = "Browser"

Set objChildren = Desktop.ChildObjects( descBrowser )

テスト中、2 つの IE ブラウザ ウィンドウを開いていますが、コードによって返されたコレクションには 4 つの見つかったアイテムが表示されます。実行中のプロセスも確認しました。これは、実行中の 2 つのプロセスの正しい数を示しています。

また、3 つのブラウザを開いた状態で確認しました。この場合、説明に一致する 6 つのオブジェクトが表示されます。

なぜこれが起こっているのか、誰か説明できますか?

4

4 に答える 4

1

UFT 11.52 + Win7

これを行うためにいくつかの戦略 (PID、タイトル、HWND、ブラウザ (インデックス)) を試しましたが、まだ成功していません。このパッチが既に存在するかどうかはわかりません。

私が想像できるのは、単純な終了タスクの場合、Browser() オブジェクトを閉じようとすると「オブジェクトが表示されない」という問題が発生し、テストがランダムにクラッシュすることです。

最良の結果は、すでに開いている IExplorer ウィンドウ (タブ) の束でした。

インストールされたパッチを確認する手順を誰か提供できますか?

于 2015-02-19T18:52:46.303 に答える
0

私は同じ問題を抱えていたので、パッチ QTPWEB_00090 を元に戻す必要がありました。その QTP パッチがインストールされているかどうかを確認し、元に戻します。

于 2013-09-19T20:19:51.277 に答える
0

これは、QTPWEB_00107 - Windows エクスプローラーでの Web ブラウザー コントロールの認識で修正されています。

于 2014-04-21T22:40:28.987 に答える
0

同じ動作が見られます (Firefox ではなく IE のみ)。

これに対する回避策は、重複を除外することです。IE を比較すると、同じ値を持つものを除外できますが、Firefox では複数のタブがあり、すべて同じhwndobjChildren(i).GetROProperty("hwnd")を持つため、Firefox も使用すると機能しません。

FF を考慮する必要がある場合は、( hwndの代わりに) CreationTimeプロパティを使用して重複を除外で​​きます。

于 2013-07-29T12:09:39.657 に答える