1

テストしているプログラムで、ある時点で閉じるボタンが有効になっていて、別の時点で無効になっているプログラムがあります。UISpyは、両方のポイントで「isEnabled」を「true」と表示しますUIAVerifyは、最初のポイントで「isEnabled」を「true」と表示し、2番目のポイントで「false」を表示します

後者は私が視覚的に真実であることを確認できるものであり、プログラムでUISpyと同じ値を取得していて、テストケースは失敗しています。

System.Windows.Automationを使用します。

ツリー構造:「ダイアログ」「プログラム名」「タイトルバー」「プログラム名」「ボタン」「閉じる」

誰かがこれを引き起こしている可能性があることを知っていますか?UIAベリファイはUISpyとは異なるライブラリを使用しますか?

4

1 に答える 1

1

UIA Verification 2.0は、Windows7と一緒にUIA3.0アップデートでリリースされた新しいネイティブCOMUIAライブラリを使用します(VistaおよびXP SP3用の個別のホットフィックスKB971513としても利用可能)。一方、UISpyは元のマネージAPIを使用していると思います。

.isEnabled()管理ライブラリに移行することで修正できたメソッドとメソッドで、管理ライブラリに断続的な問題が発生し.invoke()ました。COMライブラリは、管理ライブラリよりも全体的に安定していて高速であるようです。

移行プロセスの詳細は思い出せませんが、基本的には、.NETアプリケーションがネイティブUIAメソッドを呼び出せるようにする相互運用機能DLLを作成する必要があります。次に、オプションで独自のラッパーライブラリを作成するか、以下のいずれかを使用できます。

移行を支援するために、これらを参照することをお勧めします。

  • UIオートメーションCOM-to-.NETアダプター-COMAPIのラッパーを作成する初期の試み。これをそのまま使うのは大変でしたが、最初に見てみると助かりました。また、このラッパーの開発者によって作成されたCOMAPIに関するMSDNサポートフォーラムの投稿のいくつかを検索してください。StackOverflowの担当者が少ないため、残念ながらそれらにリンクできません(長年の潜伏者、初めての回答者)。

  • UIAソースコードの確認-COMインターフェイスへのアクセスに使用されるUIAComWrapperがソースコードに含まれていることがわかります。また、そのプロジェクトで、相互運用機能DLLをどのように作成しているかを確認することもできます。

于 2012-01-02T22:42:48.063 に答える