Archive for the 'FireFox' Category

2016/03/13 AppleScriptからWebアプリを操作する場合に用いるWebブラウザは?

Mac系の会合で質問がありました。

「AppleScriptから、Webブラウザに表示されているボタンなどを操作してさまざまなWebアプリを操作できることはわかったが、その際にWebブラウザは何を使うべきなのか?」

script_webbrowser.png

とりあえずの最低条件は、「AppleScript用語辞書を備えているWebブラウザ」ということです。WindowやDocumentをopenしたりcloseでき、その中のTabなどにアクセスでき、URLを設定したり取得したり、ページ内のソースを取得できたりというひととおりの操作ができることが条件です。

sleipnir.png
Sleipnir 4.5.1にはAppleScript用語辞書が入っているものの、実装を間違っているらしくScript Editorでオープンすると真っ白な用語辞書が表示される(直接飲み会でF社の方に報告済み、、、なんですけど、、、、)

FireFoxにもAppleScript用語辞書が入ってはいるものの、肝心の「do javascript」命令がないので、「これで何をしろと??」という状態です。Vivaldiも同様に「do javascript」命令がないので、こうした用途には使えません。

次に、「GUI Scriptingで操作するのに問題がないこと」という条件がつきます。 Webコンテンツを操作するには、JavaScript経由でアクセスしたり、GUI Scriptingでアクセスしたりします。これで脱落するものはありません。だいたいは大丈夫です。

そして、「Webブラウザ独自のアプリストアなどの仕組みによって、予期しないダイアログ表示などが行われないこと」「アップデート通知でいきなり終了したりしないこと」というあたりで、Google Chromeが怪しくなってきます。

結局、こうした用途にOS X標準装備のSafari以外のWebブラウザを使うこと自体がリスキーなので、Safariを使ってくださいという話になります。User AgentでSafari以外のものを使うことがリスキー(銀行のサイトへのアクセスなどで不安が、、、)なので、かさねがさねSafari以外のものを使うことが考えられません。

最近では、Mac miniなどをAppleScript実行専用のロボットとして設定すると、まっさらな状態のOS X環境では、知らないうちに勝手にiTunesを起動されて困ります。iTunes Helperなどのアプリケーションのプロセスはみられませんが、勘弁してほしいところです。

2009/06/16 FireFoxでオープンしているURLを取得。Leopard対応版

FireFoxでオープンしているURLを取得するAppleScriptの、Leopard以降で実装された機能を活用して記述したものです。

Mac OS X 10.4などでは、System Eventsにプロセス一覧を尋ねて、その中にFireFoxが入っていないかどうかを確認することになりますが、Mac OS X 10.5ではrunningというプロパティを取得できるようになったので、これを参照するのがスマートでよいでしょう。

もともとは、shellからAppleScriptを呼び出して、FireFoxの状態を取得したいという相談(?)を持ちかけられたもので……osascriptコマンドでこのAppleScriptを呼び出すといった感じになるかと>masuiさん

スクリプト名:FireFoxでオープンしているURLを取得。Leopard対応版
tell application "Firefox"
  if running then Mac OS X 10.5 or later
    set aURL to «class curl» of window 1
  else
    set aURL to ""
  end if
end tell
return aURL

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に

2009/06/15 FireFoxでオープン中のURLを取得する

FireFoxでオープン中のURLを取得するAppleScriptです。

FireFoxは、AppleScript的にはろくにコントロールできないダメダメブラウザで、WebブラウザとAppleScriptの連携を行いたい場合には、Safariを使うことが強く推奨されます。

スクリプト名:FireFoxでオープン中のURLを取得する
tell application "Firefox"
  set aURL to «class curl» of window 1
end tell

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に