アレアレ

お役立ち情報、お悩み解決情報を発信!

プログラミング

AppleScriptで操作中のSafariに表示されたalertやconfirm画面を操作する方法

AppleScriptで操作中のSafariに表示されたalertやconfirm画面を操作する方法

今回は、AppleScriptでSafariを自動操作するスクリプトを作る時に役立つ情報をご紹介します。

AppleScriptでSafariを操作するスクリプトを作っていると、たまに、JavaScriptによるalertやconfirm画面が表示されて、困ることになるんですね。

なぜかというと、これらの画面が表示されると、AppleScript上からSafariの操作がそれ以上できなくなってしまうからです。

ignoring/end ignoringで挟む

そこで、システムイベントに「return」キーを送信して、これらの画面を閉じようと考えるわけですが、そのためにちょっと一工夫が必要になるんですね。

その一工夫ですが、AppleScriptのコードにおいて、alertやconfirm画面で入力待ちになる箇所を、ignoring/end ignoringで挟む必要があります。

具体的なコードとしては、次のようなイメージです。

tell application "Safari"
	
    activate
    open location "http://www.apple.com"
	
        tell document 1
		
          ignoring application responses
              do JavaScript "alert('Test');"
          end ignoring
          delay 1
		
          tell application "System Events"
              keystroke return
          end tell
		
    end tell
	
end tell

以上のコードをスクリプトエディタで実行してみると、Safari上でjavascriptによるalert画面が表示されたのち、それが閉じられることがわかるはずです。

この例では、「return」キーの送信で、単純にalert画面を閉じています。一方、送信するキーを組み合わせで、confirm画面に表示されるボタンをタブキーで選んでから「return」ということも可能です。

Return Top