TestComplete はデフォルトの設定では認識できないオブジェクトが存在しますが、プロジェクトのプロパティを変更することで、一部のオブジェクトは認識できるようになります。この設定は動作の軽量化のためデフォルトでは無効になっています。
このページではオブジェクトの認識に関係する MSAA 及び UI Automation の設定を紹介します。
メニューバーの [Tools | Current Project Properties]、もしくはプロジェクトファイルを開いた画面下にある [Properties] タブを開き、[Open Applications] をクリックすると [MSAA] と [UI Automation] の項目が存在します。
それぞれの項目ではいくつかのクラスが既に設定されており、チェックボックスを有効にするとそのクラス内のオブジェクトが認識できるようになります。
"*" のチェックボックスを有効にすると全てのオブジェクトが対象となりますので、有効にした後に変更を保存し、オブジェクトが認識できるようになったかをご確認ください。MSAA と UI Automation どちらを使用するかはアプリケーションによって異なりますので、片方ずつお試しください。
オブジェクトが認識されているかどうかは [Object Spy] ツールを使用するか、[Object Browser] タブから確認できます。
[Object Spy] ツールの場合はカーソルを合わせた際に赤い枠が表示され、プロパティ情報が取得できれば認識できています。
[Object Browser] タブはシステム上に存在する全てのオブジェクトがツリー形式で表示されますので、該当オブジェクトがツリー内に存在しているかを確認することになります。
オブジェクトが認識できるようになった場合は、"*" ではなくそのオブジェクトのみ有効にするように設定することが推奨されます。MSAA, UI Automation の画面右にある [Add] ボタンから新規に行を追加し、オブジェクトの WndClass プロパティの値を入力することでそのオブジェクトのみを有効にできます。WndClass プロパティの値は [Object Spy] ツールもしくは [Object Browser] タブからご確認ください。
以下はタスクバーを対象にした場合の取得例です。
例えば、Windowsのタスクバーに複数のアプリケーションが表示されていても、まとめて一つのオブジェクトとして認識されます。
以下のように、タスクバーの WndClass プロパティの値である "MSTaskListWClass" を [MSAA] に追加してチェックを有効にすると、それぞれのアプリケーションがオブジェクトとして認識できるようになります。
なお、複数のオブジェクトが重なっている場合など、目的のオブジェクトがテストの記録時や [On-Screen Action] で操作対象に指定できないことがあります。その場合、[Object Browser] タブのツリーにて目的のオブジェクトを右クリックし、メニューから [Map Object] を選択すると NameMapping にそのオブジェクトを追加できますので、[On-Screen Action] 設定画面の下部にある NameMapping のツリーからオブジェクトを選択できるようになります。
各設定の詳細はヘルプよりご確認いただけます。
UI Automation について: https://support.smartbear.com/testcomplete/docs/working-with/managing-projects/properties/open-apps/ui-automation.html
※ Google Chrome で開き、右クリックのコンテキストメニューの「日本語に翻訳(T)」 機能をご使用いただくと、機械翻訳された内容でご覧いただけます。