Microsoft UI Automation (UIA) について
Microsoft UI Automation (UIA) は、アプリケーションのユーザーインターフェース (UI) 要素を識別し、操作するためのAPIです。主な目的は、ユーザーインターフェースのアクセシビリティを向上させることであり、
Microsoft Active Accessibility (MSAA) の後継として開発されました。UIAは、グラフィカルユーザーインターフェース (GUI) の
テスト自動化を容易にし、多くの
テスト自動化ツールやRPAツールで利用されています。
UIAのプロパティプロバイダは、Win32と.NETの両方のプログラムをサポートしています。最新の仕様は、Microsoft UI Automation Community Promise Specificationの一部として公開されており、MicrosoftはWindowsプラットフォーム以外への移植も視野に入れています。実際に、Mono環境にも移植されています。
歴史
2005年、MicrosoftはMSAAの後継としてUIAをリリースしました。マネージドUI Automation APIは、
.NET Framework 3.0の一部として提供され、ネイティブUI Automation API (プロバイダ) は、Windows VistaおよびWindows Server 2008 SDKに含まれていました。その後、UIAはWindows 7にWindows Automation API 3.0の一部として組み込まれ、Windows XP、Windows Vista、Windows Server 2003/2008向けには個別にダウンロードが可能になりました。
目的
UIAは、MSAAの後継として以下の目標を掲げて開発されました。
クライアントが対象アプリケーションのプロセスにフックしなくても効率的なパフォーマンスを実現する。
UIに関するより詳細な情報を提供する。
MSAAと共存しつつ、MSAAの課題を解消する。
MSAAに代わるよりシンプルな実装を提供する。
技術概要
利用可能なオペレーティングシステム
当初、UIAはWindows VistaとWindows Server 2008で利用可能でしたが、その後
.NET Framework 3.0の一部としてWindows XPとWindows Server 2003でも利用できるようになりました。Windows 7以降のすべてのWindowsバージョンには統合されています。
Windowsプラットフォーム以外では、Oliveプロジェクト(
.NET Frameworkのサポートを目指すMono coreのアドオン
ライブラリ)が、WPF (PresentationFrameworkおよびWindowsBase) とUI Automationのサブセットを同梱しています。
また、ノベルによるMonoアクセシビリティプロジェクトは、Monoフレームワーク向けのUIAプロバイダとクライアントの実装を提供しています。このプロジェクトは、
Linuxの支援技術 (AT) 向けのアクセシビリティツールキット (ATK) との橋渡し役も担い、UIAベースのATをATKを実装するアプリケーションと連携させることが可能となっています。
関連テクノロジーと相互運用性
Microsoft Active Accessibility (MSAA): UIAはMSAAの後継ですが、MSAAに依存するアプリケーションがまだ存在するため、UIAアプリケーションとMSAAアプリケーションの間で情報共有が必要です。MSAA-to-UIAプロキシとUIA-to-MSAAブリッジが開発され、相互運用性を実現しています。MSAA-to-UIAプロキシは、MSAAの情報を元にUIAクライアントAPIで利用できるようにし、UIA-to-MSAAブリッジは、MSAAクライアントがUIAを実装するアプリケーションにアクセスできるようにします。
Accessible Rich Internet Applications (ARIA): UIAのAriaRoleおよびAriaPropertiesプロパティは、HTML要素に対応するARIA属性値へのアクセスを可能にします。これにより、WebブラウザでUIオートメーション要素としてアクセスできるようになります。ARIA属性からUIAへの一般的なマッピングも利用できます。
Windows Automation API: Windows 7以降、Microsoftはアクセシビリティ技術をWindows Automation APIというフレームワークにまとめました。MSAAとUIAはともにこのフレームワークの一部となっています。旧バージョンのWindowsについては、KB971513を参照してください。
Monoアクセシビリティプロジェクト: Microsoftとノベルは
2007年11月7日、相互運用性に関する合意を発表し、アクセシビリティ機能の拡張について発表しました。ノベルは特に、UIAフレームワークが
Linux Accessibility Toolkit (ATK)などの既存の
Linuxアクセシビリティプロジェクトと連携できるようにオープンソースのアダプタを開発し、SUSE
Linux Enterprise Desktop、Red Hat Enterprise
Linux、
Ubuntu Linuxと共にリリースされることを発表しました。これにより、UIAはクロスプラットフォームでの利用が可能になりました。
脚注
詳細については以下の資料を参照してください。
関連項目
UI Automation Control Types
UI Automation Control Patterns
UI Automation Control Properties
UI Automation Events
外部リンク
UIオートメーションの概要
UIオートメーションのススメ
UI Automation Verify (UIA Verify) Test Automation Framework
UI Automation PowerShell Extensions
*
TestStack/White