WPF アプリケーションのオブジェクト認識がうまくいかない時の対処法

WPF (Windows Presentation Foundation) は、Microsoft が提供する、Windows 上で動作するアプリケーションの GUI 開発ライブラリです。Ranorex は、WPF のコントロールをサポートしているため、WPF アプリケーションのテストがおこなえます。しかしながら、レコーディングやテスト実行時にオブジェクト認識に時間がかかり、作業効率が低下したり、テスト実行時にオブジェクト認識ができなくなり、テストが失敗となるケースがあります。このような場合は、Ranorex の WPF プラグインの設定を変更することで、オブジェクト認識が改善される可能性があります。
WPF プラグインの設定
1.Ranorex Sutdio にて、WPF アプリケーションのテストをするソリューション (rxsln) を開きます。
2. ツールバーから「設定を開く」を選択します。

3. 設定画面の「プラグイン」タブを選択します。

4. 「WPF Legacy/UIA Interaction」にて、オブジェクト認識方式を変更します。
各オブジェクト認識方式を試していただき、オブジェクト認識が向上された方式をご利用ください。
※デフォルトは、WpfImproveOnly になります。

それぞれのオブジェクト認識方式の詳細は以下になります。
※WPF プラグインは、WPF を使用して開発されたアプリケーションに対してRanorex でのオブジェクト認識機能を提供するものです。
- WpfOnly:WPF プラグインのみを適用します。
- WpfPreferred:WPF と UIA プラグインを適用し、両方の要素を Ranorex Spy 上のツリーに表示しますが、トラッキング対象は、WPF 要素になります。
- UiaPreferred:WPF と UIA プラグインを適用し、両方の要素を Ranorex Spy 上のツリーに表示しますが、トラッキング対象は、UIA 要素になります。
- UiaOnly:UIA プラグインのみを適用します。
- WpfImprovedOnly:よりオブジェクト認識の向上のために改善された WPF プラグイン のみを適用します。
注意点
Ranorex のプラグイン設定はソリューション単位となるため、1つのソリューション内で認識方式を混在させることはできません。
そのため、特定の箇所のみに別のオブジェクト認識方式を適用させたい場合は、プラグインの変更が必要な部分のシナリオを新規ソリューションで作成し、プラグイン設定をしてください。
Ranorex は、ソリューションごとにテスト実行ファイル (exe ファイル) を生成するため、各ソリューションの実行ファイルを連続実行するバッチファイルなどをご用意ください。コマンドライン実行の詳細については、こちらをご参照ください。
その他の解決策
Ranorex がテスト対象アプリを扱うための十分な権限がない場合にも、WPF アプリのオブジェクト認識がうまくいかないケースがあります。このような場合には、すべての Ranorex ツールとテスト対象アプリを、同じ権限 (可能であれば管理者権限) で再起動してください。
まとめ
WPF アプリケーションのオブジェクト認識に時間がかかる場合や認識できない場合は、今回ご紹介した WPF プラグインの設定を変更してみてください。その他、テスト対象アプリと Ranorex の権限もご確認ください。