MacOSXターミナルのシェルスクリプトからSafariやChromeのWebページのボタンを自動的に押す方法

Webの操作を自動化できたら便利です。例えば午前0時にオークションで入札したり、10分後にGmailを送信したりできます。

これを行うにはCURLやスクリプトを使う方法が一般的です。しかしながら複雑なサイトになればなるほど、Cookieやリファラーのセッション処理が必要になりスクリプトだけで行うには相当の解析コードが必要になります。

そこで簡易的にSafariやChromeなどのブラウザを使う方法があります。ブラウザの画面を予め手動で表示しておき、TABキーを使ってフォーカスを押したいボタンやリンクに当てておき、スクリプトから「ENTER」のキーコードをブラウザに送るのです。

キーコードを送るにはMacOSの場合だとAppleScriptが便利です。ここではMacOSXターミナルのシェルスクリプトからSafariやChromeにキーコードを送る方法を紹介します。

手順

  1. bashのスクリプトファイルを用意します。
  2. 好きなトリガの後に以下の様に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'
    
  3. SafariやChromeを開き、ボタンを押したい状態にします。例えばオークションの入札手続きを行い、最後の確認画面において「TAB」キーを複数回押し確認ボタンにフォーカスを置きます。
  4. 先ほどのスクリプトを実行すると、3秒後にブラウザでフォーカスしたボタンが押されます。

応用

この記事を見た人がよく読んでいる記事

トップページ

節約テクノロジ > MacOSXターミナルのシェルスクリプトからSafariやChromeのWebページのボタンを自動的に押す方法