06. GUI Scriptingで作業自動化(1)2013-04-24

GUI Scriptingがどんなものかについては自由にお調べ願いますが、ぜひ読んでいただきたいのは「AS Hole(AppleScriptの穴)」さんの以下の記事です。
http://piyocast.com/as/archives/538
「GUI Scriptingによる記述」は飛び飛びですが(4)まであります。スクリプトとしては避けようの無い場合の最終手段であること、UI Browser.appを用いてUI element要素を調べるのが現実的で、それでも駄目な場合がいろいろある、など端的と思われます。

マウスやキー操作を実現していくわけですが、いざ取り組んでみると大変というお話は続きで述べるとして、本稿では自作の簡単な例を。
作業内容は「ブラウザに表示させたモデム管理ページで再起動を実行、環境設定からクッキーの一覧windowを表示させて終了」です。モデム再起動の間に不要なクッキーを手動削除しますので。

tell application "iCab"
GetURL "http://web.setup/index_frame.html"
end tell

tell application "System Events"

tell process "iCab"
set frontmost to true

tell window "Aterm WARPSTAR クイック設定Web"
click button "登録" of UI element 1 of row 2 of table 2 of UI element 1 of scroll area 1 of UI element 1 of scroll area 1
delay 1
click button "OK" of sheet 1
delay 1
click button "OK" of sheet 1
delay 1
click button 1
end tell

set frontmost to true
keystroke "," using command down

tell window "iCab 環境設定"
click button "Cookie"
end tell
tell window "Cookie"
click button "Cookie を表示"
end tell
tell window 1
click radio button "共用 Cookie" of tab group 1
end tell
tell window 2
click button 1
end tell

end tell
end tell

clickとkeystroke合計9個をまとめて、画面をあちこちマウス移動させられる苦痛?が解消、自分としては重宝しています。
作成方法ですが、やはりUI Browser.appを用いてUI elementを調べています。
例えば最初にclickしている"登録"ボタン(押すと再起動開始)はhtmlで動的に作成されているのですが、スクリプトに書くべきUI element要素は私の努力ではUI Browserでしか調べようがありませんでした。次に2回"OK"させられる?確認ボタンも同様です。
それからスクリプトを実行して案外驚くのが、速度の遅さ?とそれをコントロールもできないことです。手作業の苦痛はありませんが作業の進行速度自体は同じ。一発実行には違いなくても今までのスクリプトのような爽快感に欠ける、そんな妙な不満は全く贅沢なのでしょうが(苦笑)。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://darzilin.asablo.jp/blog/2013/04/24/6789116/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。