普段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はプロジェクト内にフォルダを切って置いておきたいので、下の画像の箇所に配置。

WebDriverTrial RubymineProjects untitled cheese finder tests rb WebDriverTrial

コードを書く

あとはコードを書いていきます。

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でテスト用クラスで右クリックして、実行してあげましょう。

WebDriverTrial RubymineProjects untitled cheese finder tests rb WebDriverTrial

これで、Ruby+SeleniumWebDriverでブラウザ操作をする最初の一歩ができました。

ここからRubyでの遊びスタートします。