基本的に私はビジュアル スタジオ CODE UI を使用して Windows ベースのアプリケーションの UI 自動化テストに取り組んでいます。典型的な階層が CODE UI ビルダーによって記録されているスクリーンショットから:-
メイン ウィンドウ -> コントロール Id プロパティを持つウィンドウ -> 実際のコントロール。
では、この階層とコントロール ID に関連する質問はありますか?
1) これらのコントロール ID はどのように生成されますか?
a)GUIのコントロールの深さに応じて、これらのコントロールID番号が生成されるロジックがあることは知っていますが、たとえば画像では、それらがどのように生成されるかについて一貫した方法を見つけることができません2 つのボタンが接続され、ヘルプは同じレベルの GUI にあるように見えますが、それでもそれらのコントロール ID は1 と 5013 と大きく異なります。
b) これらのコントロール ID は、テスト環境で使用されるコード化された UI ビルダーによって生成されますか、または製品開発側に何らかのロジックがあるか、またはそれらが生成されるコード自体がありますか?
2)コントロール IDを持つウィンドウのこの中間層をスキップして、記録と再生を正常に行う方法はありますか?これらのコントロール ID を取り除くため)
3)さらに、ほとんどすべてのコントロールに対して 2 つのレイヤーがあり、論理名またはラベルのみでは機能せず、明示的にコントロール ID が必要な特殊なケースでは 3 つのレイヤーを持つハイブリッド アプローチを使用できますか?
4) 最後になりましたが、このタイプのアクセシブルな実装のどれだけがテスト環境で実行できるかということです。私の知る限り、コントロールのアクセシビリティの大部分は、コード自体にいくつかのプロパティを追加することによって製品開発環境で実行する必要があります。テスト環境で CODE UI などのさまざまなツールを使用してテストするために取得できます。しかし、大規模な製品の場合、開発側に余分な負担がかかり、顧客に提供する必要がある製品に余分な不要なコード (テスト目的でのみ必要) を追加するようなものであるため、これは良いアプローチではないと思います。
私の質問を明確にするために、参考として以下の画像を参照してください。
1 番目の画像は、リモート デスクトップ GUIを示しています
第 2 ショーコンピューター:コード化された UI によって記録されたコントロール プロパティ
3つ目は、コード化された UI によって記録された接続ボタンのプロパティを示しています
4 番目は、コード化された UI によって記録されたヘルプボタンのプロパティを示しています。