###前提・実現したいこと
著書:クローラー開発技法のサンプルコードを動かしたいです。
###発生している問題・エラーメッセージ
$ ruby login.rb /usr/local/rvm/gems/ruby-2.3.0/gems/selenium-webdriver-3.0.8/lib/selenium/webdriver/common/service.rb:130:in `connect_until_stable': unable to connect to Mozilla geckodriver 127.0.0.1:4444 (Selenium::WebDriver::Error::WebDriverError) from /usr/local/rvm/gems/ruby-2.3.0/gems/selenium-webdriver-3.0.8/lib/selenium/webdriver/common/service.rb:74:in `block in start' from /usr/local/rvm/gems/ruby-2.3.0/gems/selenium-webdriver-3.0.8/lib/selenium/webdriver/common/socket_lock.rb:41:in `locked' from /usr/local/rvm/gems/ruby-2.3.0/gems/selenium-webdriver-3.0.8/lib/selenium/webdriver/common/service.rb:71:in `start' from /usr/local/rvm/gems/ruby-2.3.0/gems/selenium-webdriver-3.0.8/lib/selenium/webdriver/firefox/w3c_bridge.rb:32:in `initialize' from /usr/local/rvm/gems/ruby-2.3.0/gems/selenium-webdriver-3.0.8/lib/selenium/webdriver/common/driver.rb:52:in `new' from /usr/local/rvm/gems/ruby-2.3.0/gems/selenium-webdriver-3.0.8/lib/selenium/webdriver/common/driver.rb:52:in `for' from /usr/local/rvm/gems/ruby-2.3.0/gems/selenium-webdriver-3.0.8/lib/selenium/webdriver.rb:82:in `for' from /usr/local/rvm/gems/ruby-2.3.0/gems/capybara-2.12.0/lib/capybara/selenium/driver.rb:22:in `browser' from /usr/local/rvm/gems/ruby-2.3.0/gems/capybara-2.12.0/lib/capybara/selenium/driver.rb:55:in `visit' from /usr/local/rvm/gems/ruby-2.3.0/gems/capybara-2.12.0/lib/capybara/session.rb:252:in `visit' from /usr/local/rvm/gems/ruby-2.3.0/gems/capybara-2.12.0/lib/capybara/dsl.rb:52:in `block (2 levels) in <module:DSL>' from login.rb:16:in `login' from login.rb:27:in `<main>'
調べたところ、selenium-webdriverのバージョン不対応によるエラーであるとわかりました。
解決策として乗っていたのは、
そのバージョンを下げるか、上げるかでした。
しかし、そのどちらも試しましたが同様のエラーが出てしまいます。
下げた時:2.53.4
上げた時:3.0.8
###該当のソースコード
【login.rb】
# -*- coding: utf-8 -*- require 'capybara' require 'capybara/dsl' require 'selenium-webdriver' Capybara.current_driver = :selenium Capybara.app_host = "https://affiliate.amazon.co.jp/" Capybara.default_max_wait_time = 5 module Crawler class Amazon include Capybara::DSL def login visit('') fill_in "username", :with => 'メールアドレス' fill_in "password", :with => 'パスワード' click_button "サインイン" end end end crawler = Crawler::Amazon.new crawler.login
ご経験ある方、指南お願いします!
###追加
/usr/local/rvm/gems/ruby-2.3.0/gems/selenium-webdriver-3.0.8/lib/selenium/webdriver/common/service.rb:59:in `binary_path': Unable to find chromedriver. Please download the server from http://chromedriver.storage.googleapis.com/index.html and place it somewhere on your PATH. More info at https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver. (Selenium::WebDriver::Error::WebDriverError)
driver = Selenium::WebDriver.for :chrome
$ ls /usr/local/rvm/rubies/ruby-2.3.0/bin chromedriver erb* gem* irb* rake* rdoc* ri* ruby*