SeleniumをRubyから呼んでみる
Gemfileを作って編集する。
bundle init vim Gemfile
入力内容は下記の通り。
source "https://rubygems.org" gem "selenium-webdriver", "‾> 2.38.0”
bundle installを実行する。
bundle install --path vendor/bundle
rubyスクリプトファイルを作成する。
vim drive.rb
内容は下記の通り。
require 'rubygems' require 'selenium-webdriver' driver = Selenium::WebDriver.for :firefox driver.get "http://google.com" element = driver.find_element :name => "q" element.send_keys "Cheese!" element.submit puts "Page title is #{driver.title}" wait = Selenium::WebDriver::Wait.new(:timeout => 10) wait.until { driver.title.downcase.start_with? "cheese!" } puts "Page title is #{driver.title}" driver.quit
実行してみる。
ruby drive.rb
怒られる。selenium-webdriverが読み込めない模様。
`require': cannot load such file -- selenium-webdriver (LoadError)
bundle exec で実行してみる。
bundle exec ruby drive.rb
怒られる。firefoxがインストールされてないから?
Could not find Firefox binary (os=macosx). Make sure Firefox is installed or set the path manually with Selenium::WebDriver::Firefox::Binary.path= (Selenium::WebDriver::Error::WebDriverError)
chromeに変えてみて、再実行。やっぱり怒られる。chromedriverが無いとダメらしい。
Unable to find the chromedriver executable. Please download the server from http://chromedriver.storage.googleapis.com/index.html and place it somewhere on your PATH. More info at http://code.google.com/p/selenium/wiki/ChromeDriver. (Selenium::WebDriver::Error::WebDriverError)
言われたとおり、http://chromedriver.storage.googleapis.com/index.html をブラウザで開いて、最新版(2.7)のmac用をダウンロード。 解凍すると、 chromedriver というファイルが出てくるので、PATHが通っているディレクトリに移動。
で、再実行。
bundle exec ruby drive.rb
無事ブラウザが開き、googleの検索結果が表示され、消えた。 コンソールには
が表示されてた。
・公式のサンプルコードなど
http://docs.seleniumhq.org/docs/03_webdriver.jsp
・参考になりそうなところ
http://qiita.com/tomerun/items/9cb81d7a98150ff22f53
http://morizyun.github.io/blog/selenium-scraping-webdriver-ruby/