15

Windows 8 コンシューマー プレビューをダウンロードしてインストールしました。UI オートメーション API を使用してメトロ スタイル アプリケーションからデータを取得する方法を知りたいです。

背景: Microsoft UI Automation APIを使用してアプリケーションと対話する自動テストが多数あります。スクリプトは、.NET 4 に対して IronRuby で記述されています。

最初は、スタートメニューが表示されているかどうかを確認したいだけです(表示されている場合は閉じます)

Microsoft によると、通常の UI オートメーション API はメトロ スタイル アプリケーションにアクセスして制御できるはずですが、問題は、自分のコードが実際にメトロ アプリケーションの UI にアクセスする方法がわからないことです。UIオートメーションデータを表示する通常の方法はUISpyを使用していますが、Windows 8でUIスパイを実行してメトロアプリを起動すると、それについては言及されていません...メトロアプリ(スタート画面を含む)が壁に囲まれているようですデスクトップから離れます。

UISpy でメトロ アプリが見つからない場合、自動化 ID を見つけるにはどうすればよいですか? また、自動化されたテスト スクリプトからそれらを見つけるにはどうすればよいですか?

4

3 に答える 3

5

Metro スタイル アプリで動作する UI オートメーションに関するいくつかのリソース:

  • これは、それを示すサンプルです。

  • ここにそれを説明するブログ投稿があります。

  • これは、この件に関するフォーラム スレッドです。

    このアプリには、従来の UI オートメーションが正しく機能するのを妨げるものは何もありません。Metro スタイル アプリを表示するには、更新されたツールを取得する必要がある場合があります。一部は Consumer Preview で出荷されます。inspect.exe を探します。

于 2012-05-03T06:59:31.757 に答える
1

WinRT (別名 "Metro Style") アプリケーションはサンドボックスで実行されます。デスクトップ アプリケーションを含め、アプリケーション間の壁を貫通することはできません。これには、ネットワークの分離が含まれます (たとえば、開発環境を除いて、localhost を参照することはできません)。これには、アプリ間の非常に特殊なタイプの対話を可能にする共有と検索の連絡先など、いくつかの例外があります。

UISpy が実行中の WinRT アプリケーションをバックグラウンドで認識できないようにしているのは、このサンドボックスです。UISpy が、コンシューマ プレビューで利用できないサンドボックスに対するある種の開発環境の例外 (ネットワーク分離の例外と同様) なしで、この問題をどのように回避できるかわかりません。

また、現時点で UI オートメーション API が WinRT アプリケーションでいつサポートされるかについての発表もありません。

于 2012-05-02T04:00:37.713 に答える