watirを使ってRubyからブラウザを起動する
watirというのを利用すればブラウザをRubyから呼び出すことができる.元々自動テストをするためのものなようなので,テキストフィールドに入力したり,クリックしたりもできる.詳しくは公式サイト.
http://watir.com/
今回はMacでSafariを呼び出すので,safariwatirを使います.
$ sudo gem install rb-appscript $ sudo gem install safariwatir
例えば,Googleカレンダーにログインしたいときは以下のような感じ.
require "rubygems" require "safariwatir" browser = Watir::Safari.new browser.goto("http://www.google.com/calendar") browser.text_field(:name, "Email").set("USER_NAME") browser.text_field(:name, "Passwd").set("PASSWORD") browser.button(:name, "signIn").click
<101104追記>
GoogleカレンダーみたいにUsernameとPassを使ってログインするプログラムを上記のように書くと,すでにログイン済みの場合,GoogleカレンダーのHPにアクセスしても,ログイン済みのためテキストボックスが見つからずエラーがはかれる.
そこで,とりあえず簡単にページ内に含まれる言葉でどのページにいるのかということを判定して,ログイン画面にいればログインするようにする.
if browser.text.include? "KEYWORD" #KEYWORDがあるときの処理 else #KEYWORDがないときの処理 end