「d.sunnyone.org: WindowsアプリのUI自動操作をUI Automation PowerShell Extensionで行う」の記事を読んで、UI AutomationのPowerShell用ラッパーがあることを知ったので、早速試してみました。
・UI Automation PowerShell Extensions – Home
http://uiautomation.codeplex.com/
■ 使用準備
- 上記ページからZipファイル(2014/10/16 時点ではUIAutomation.0.8.7B3.NET35.zip)をダウンロードして適当なフォルダ(ここではC:\System\UIAutomation)に展開します。
- 管理者権限でPowerShellを起動します。UI Automation PowerShell Extensionsを利用するにはPowerShell 2.0以上が必要になるので、「Windows7にPowerShell3.0をインストールする手順」等を参考に、事前にインストールしておいてください。
- 「Set-ExecutionPolicy Bypass」を実行します。
- 一時的に試用するだけなので、「ipmo C:\System\UIAutomation\UIAutomation.dll」を実行してモジュールを読み込みます。
- 「(gmo uia*).Name」を実行して、「UIAutomation」が表示されれば準備完了です。
■ UI Automation PowerShell Extensionsを使って電卓操作
UI Automation PowerShell Extensions付属のUIAutomationSpy.exeを実行すると、下記のようなコードを生成することができます。
Get-UiaWindow -Class 'CalcFrame' -Name '電卓' | ` Get-UiaPane -Class 'CalcFrame' | ` Get-UiaPane -Class '#32770' | ` Get-UiaButton -AutomationId '131' -Class 'Button' -Name '1'
このコードとドキュメントを参考に、“電卓を起動して「1」ボタンをクリックする”コードを書くと、下記のようになります。
$calc = Start-Process calc -PassThru | Get-UIAWindow $btn = $calc | Get-UiaButton -Class 'Button' -Name '1' $btn | Invoke-UiaButtonClick
上記の通り、非常に短いコードでアプリケーションを操作できることが分かります。
「UI Automation PowerShell Extensions – Documentation」を見る限り、コントロールのダブルクリックや右クリックも簡単にできるみたいです。
作成したアプリケーションをテストするときにはかなり役立ちそうなモジュールですね!
知っておいて損は無いだろうと思います。
この記事へのコメントはありません。