読者です 読者をやめる 読者になる 読者になる

.logbook

学んだことを書き綴る、言わば航海日誌です。

Rubyでブラウザを操作する!Watirを使ったブラウザ操作の自動化

Ruby Ubuntu

仕事や普段の作業で、ブラウザを操作する作業がめんどくさいと感じていた。

  • ブラウザ経由での勤怠情報入力
  • 特定のサイトにアクセスしてのファイルアップロード

これを自動化することができないか?と調査していたところ、Rubyでプログラムを記述してブラウザを操作できるライブラリを発見。早速使ってみた。

※今回はひとまずUbuntu 13.10上で動作させている。

インストール

下記順でコマンド入力して、インストールした。(ruby-devがないとエラーが出る)

$ sudo apt-get install ruby-dev
$ sudo gem install mini_magick
$ sudo gem install watir

プログラム作成

Rubyプログラムを記述。今回は「Yahoo!にアクセスして、ヤフオクのリンクをクリックする」を自動化してみた。

require "watir"

browser = Watir::Browser.new :firefox
browser.goto('http://www.yahoo.co.jp')
browser.link(:text, 'ヤフオク!').click
browser.wait
sleep 10
browser.close # ブラウザを閉じる

作ったプログラムを実行すると、Firefoxが起動しYahoo!へアクセスする。次にヤフオク!のページへ移動することが確認できた。

課題

やりたかったことは「特定サイトにアクセスし、ファイルアップロードする」だったが、まだ方法がわかっていない。(ファイルダイアログの操作方法が不明。。。)追加情報が見つかり次第、挑戦する。

参考

ドキュメント

Watir API Reference

Cheat Sheet · watir/watir Wiki · GitHub

HTML Elements Supported by Watir · watir/watir Wiki · GitHub

事例

Rubyでブラウザを操作できるGem watir - 酒と泪とRubyとRailsと

Watirで自動テストを書いてみた - Qiita [キータ]