節約テクノロジ >
MacOSXターミナルのシェルスクリプトからSafariやChromeのWebページのボタンを自動的に押す方法
Webの操作を自動化できたら便利です。例えば午前0時にオークションで入札したり、10分後にGmailを送信したりできます。
これを行うにはCURLやスクリプトを使う方法が一般的です。しかしながら複雑なサイトになればなるほど、Cookieやリファラーのセッション処理が必要になりスクリプトだけで行うには相当の解析コードが必要になります。
そこで簡易的にSafariやChromeなどのブラウザを使う方法があります。ブラウザの画面を予め手動で表示しておき、TABキーを使ってフォーカスを押したいボタンやリンクに当てておき、スクリプトから「ENTER」のキーコードをブラウザに送るのです。
キーコードを送るにはMacOSの場合だとAppleScriptが便利です。ここではMacOSXターミナルのシェルスクリプトからSafariやChromeにキーコードを送る方法を紹介します。
手順
- bashのスクリプトファイルを用意します。
- 好きなトリガの後に以下の様にosascriptの行を入れます。この例では3秒待ってからChromeに「ENTER」を送ります。Safariの場合は「Google Chrome」の箇所を「Safari」に変更してください。
sleep 3 osascript -e 'tell application "Google Chrome" to activate' -e 'tell application "System Events" to keystroke return'
- SafariやChromeを開き、ボタンを押したい状態にします。例えばオークションの入札手続きを行い、最後の確認画面において「TAB」キーを複数回押し確認ボタンにフォーカスを置きます。
- 先ほどのスクリプトを実行すると、3秒後にブラウザでフォーカスしたボタンが押されます。
応用
- AppleScriptのkeystrokeはreturnの他にもtabでタブ、spaceでspaceのコードが送れます。ダブルクォートで囲むとその文字が入力されます。例えば”hoge"はhogeとキーが打たれます。残念ながら漢字は使えません。
- keystrokeのコードは&で連結できます。例えば「fujisan」と入力してTABを押してENTERは「keystroke "fujisan"&tab&return」となります。検索文字や金額を自動入力して確定する時に使えます。
この記事を見た人がよく読んでいる記事
節約テクノロジ >
トップページ
節約テクノロジ > MacOSXターミナルのシェルスクリプトからSafariやChromeのWebページのボタンを自動的に押す方法