2

デスクトップに多くの同様のウィンドウを作成できる GUI アプリケーションがあります。すべてのウィンドウのタイトルは同じです。同じタイトルのすべてのダイアログを列挙し、そのような各ダイアログに対していくつかのテストを行う必要があります。

私が電話した場合:

dialog = app['Window Name']

pywinauto は、名前でコントロールにアクセスするのに役立つ WindowSpecification オブジェクトを返します。

私が電話するとき:

dialogs = app.windows_(title='Window Name')

pywinauto は、あまり役に立たない HwndWrapper インスタンスのリストを返します。

指定されたタイトルのウィンドウのリストを WindowSpecification オブジェクトとして取得する方法は?

4

1 に答える 1

4

あなたは本当にできません。WindowSpecification は、指定された基準に一致するすべてのウィンドウの単一の仕様です。WindowSpecification インスタンスを操作する場合、多くの場合、WindowSpecification が検出してアクセスする HwndWrapper インスタンスと対話します。

したがって、答えは app.windows_() によって返される HwndWrapper を使用することだと思います (WindowSpecification.WrapperObject() によって返される単一の HwndWrapper と同様)。

注 - ウィンドウ内の特定のコントロールを調べて常にウィンドウのリストを絞り込もうとしている場合は、 app['Window Name']['Unique Control Name'].Parent() を使用してウィンドウを返す必要があります。

WindowSpecification と HwndWrapper の主な違いは、WindowSpecification がまだ存在している必要がないのに対し、HwndWrapper インスタンスは特定の基になるウィンドウ ハンドルを反映することです。これにより、WindowSpecification は、ウィンドウを待機したり、ウィンドウが存在するかどうかを確認したりするコードを実装できます。

于 2010-05-15T07:01:08.493 に答える