普段Javaを使ってSeleniumでの自動テストを書いているので、たまには違う言語でもと思い、Rubyでやってみました。
RubyでSeleniumを使う
一旦の目標として、ただこのブログのURLを開いて閉じるだけのプログラムを書くことしました。
Rubyではユニットテストフレームワークが複数あるのですが、『Seleniumデザインパターン & ベストプラクティス』を見ながら進めたので、Test::Unitを選択。(今回のサンプルではアサート入れてません)
準備
まずはGemfileにselenium-webdriverを追加。
source "https://rubygems.org"
gem "selenium-webdriver"
そして、ターミナルから
$bundle install
これでWebDriverを使う準備ができました。
次に、Chromeを動かすためにChromeDriverをダウンロードします。
Downloads – ChromeDriver – WebDriver for Chrome
私の趣味として、ChromeDriverはプロジェクト内にフォルダを切って置いておきたいので、下の画像の箇所に配置。
コードを書く
あとはコードを書いていきます。
require 'test/unit'
require 'selenium-webdriver'
require 'rubygems'
class CheeseFinderTests < Test::Unit::TestCase
def test_find_some_cheese
# chromedriverの場所を指定する
Selenium::WebDriver::Chrome.driver_path ="/Users/yoshikiito/RubymineProjects/untitled/drivers/chrome/2.41/chromedriver" #.exeはつけない
# ブラウザ指定
driver = Selenium::WebDriver.for(:chrome)
# 指定のURLを開く
driver.get("http://yoshikiito.net/blog")
# ブラウザを閉じる
driver.quit
end
end
※test_find_some_cheeseなのは本のサンプルをベースに書き始めたからで、今回の操作内容とは無関係です。。
あとは、お使いのIDEでテスト用クラスで右クリックして、実行してあげましょう。
これで、Ruby+SeleniumWebDriverでブラウザ操作をする最初の一歩ができました。
ここからRubyでの遊びスタートします。