昨日までの記事でスクリプトから電卓のボタンを押下させ、計算させることができました。
この記事でループを作成し、耐久テストのように延々と計算させ続ける処理に変更してみましょう。
ボタンを押下させる方法などはもう分かりましたので、あとは制御文を書くだけです。
この記事に興味を持つような方であればとても簡単に書くことができると思います。
動かし方さえ分かれば、あとは自動化させたいアプリケーションのUI要素を検索し、行いたいルーチンを書くだけでちょっとした耐久テストくらいであれば簡単に作ることができると思います。
では、ループ部分を追記し動作させてみましょう。
簡単におさらい
まず、昨日までに記述した内容を確認してみましょう。
1 2 3 4 5 6 7 8 9 |
Import-Module .\Modules\UIAutomation\UIAutomation.dll $process = Start-Process calc -PassThru $window = Get-UiaWindow -Name '電卓' $window | Get-UiaButton -Name '2' | Invoke-UiaButtonClick | Out-Null $window | Get-UiaButton -Name 'プラス' | Invoke-UiaButtonClick | Out-Null $window | Get-UiaButton -Name '5' | Invoke-UiaButtonClick | Out-Null $window | Get-UiaButton -Name '等号' | Invoke-UiaButtonClick | Out-Null |
- [ Import-Module ]コマンドレットでUIAutomationをインポート
- [ Start-Process ]コマンドレットで「calc(電卓)」を起動
「-PassThru」パラメータでプロセスのオブジェクトを取得しました。 - [ Get-UiaWindow ]コマンドレットで電卓のオブジェクトを取得
- [ Get-UiaButton ]で電卓($window)の[ 2 ]という名前のボタンを探します。
- そして、[ Invoke-UiaButtonClick ]で押下。
ここでPowerShellに出力されるはずの結果は[ Out-Null ]で破棄しています。
全く難しくないですね。
無限ループを作って延々と計算するように変更しよう。
上記の内容では、「等号」ボタンを押下してスクリプトが終了します。
耐久テストのように24時間延々とボタンをクリックさせてみましょう。
0 1 2 3 4 5 6 7 8 9 10 |
Import-Module .\Modules\UIAutomation\UIAutomation.dll $process = Start-Process calc -PassThru $window = Get-UiaWindow -Name '電卓' while($True) { $window | Get-UiaButton -Name '2' | Invoke-UiaButtonClick | Out-Null $window | Get-UiaButton -Name 'プラス' | Invoke-UiaButtonClick | Out-Null $window | Get-UiaButton -Name '5' | Invoke-UiaButtonClick | Out-Null $window | Get-UiaButton -Name 'プラス' | Invoke-UiaButtonClick | Out-Null } |
はい、たったこれだけです。
「等号」ボタンを押下させる処理を、「プラス」を押下するように変更し、whileループで継続条件を真、つまり延々と繰り返すように記述しています。
では実行させてみましょう。
0 |
PS D:\DPS> .\Scripts\UIAutomationCalc.ps1 |
いかがでしょうか、’2+5+2+5+2+5+2+5+2+…..’と延々繰り返す処理ができていると思います。
まとめ
簡単にまとめると、
- UIAutomationをインポートし、
- テスト対象のアプリケーションを起動させ、
- UIAutomationSpy.exeで調べたUI要素を操作する
この繰り返しで簡単に自動化させることができます。
耐久テスト以外でも知識が増えれば色々と使えそうなツールなので、ぜひPowerShellを使っていってみてくださいね!
// ——– ——– ——– ——– ——– ——– ——– ——–
UIAutomationでアプリケーション操作を自動化しよう! その1
UIAutomationでアプリケーション操作を自動化しよう! その2
UIAutomationでアプリケーション操作を自動化しよう! その3
UIAutomationでアプリケーション操作を自動化しよう! その4
// ——– ——– ——– ——– ——– ——– ——– ——–