Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Getting Selenium WebDriver to use Chrome in RSpec/Rails

I'm using Selenium WebDriver with my RSpec tests on a Rails 4 web app. There's no problem using Firefox in my tests, but I can't get the Chrome web driver to work.

This is what I've done:

  1. Downloaded Chrome driver (version 2.9) from http://chromedriver.storage.googleapis.com/index.html

  2. Unzipped and put the driver into /usr/bin/

    sudo mv chromedriver /usr/bin/
    sudo chmod +x /usr/bin/chromedriver
    
  3. Added this to spec_helper.rb:

    Capybara.register_driver :selenium do |app|
      Capybara::Selenium::Driver.new(app, :browser => :chrome)
    end
    
  4. Modify my test (page_spec.rb) to use Chrome for web driver.

    require 'rspec_gem'
    require 'rspec-expectations'
    require 'selenium-webdriver'
    
    driver = Selenium::WebDriver.for :chrome
    
  5. This is the dev and test group in my Gemfile.rb:

    group :development, :test do
      gem 'sqlite3', '1.3.7'               # Using sqlite for development builds
      gem 'rspec-rails', '2.13.2'          # Unit Test tool
      gem 'annotate', '2.5.0'              # For annotating models
      gem 'simplecov'                      # Code coverage analysis.
      gem 'capybara', '~>2.0'              # Headless browser for test.
      gem 'selenium-webdriver'
      gem 'database_cleaner', '1.2.0' # github: 'bmabey/database_cleaner'
      gem 'better_errors'                  # Replaces standard rails errors page
      gem 'binding_of_caller'
      gem 'factory_girl_rails', '4.1.0'    # Generate user factories for testing.
      gem 'faker', '1.1.2'                 # Tool to seed the user database.
      gem 'rspec_gem'                      # For Selenium tests
      gem 'rspec-expectations'
      gem 'debugger'
    end
    
  6. I run the test using this command:

    bundle exec rspec -fd page_spec.rb
    

This is the error I get when I try to run the test:

/home/jchan/.rvm/gems/ruby-2.0.0-p247/gems/selenium-webdriver-2.42.0/lib/selenium/webdriver/chrome/service.rb:50:in `start': unable to connect to chromedriver http://127.0.0.1:9516 (Selenium::WebDriver::Error::WebDriverError)

I'm not sure why it cannot connect to the chromedriver.

like image 207
Jack Avatar asked Nov 16 '25 16:11

Jack


2 Answers

add codes in spec_helper.rb:

    Capybara.register_driver :chrome do |app|

     Capybara::Selenium::Driver.new(app, :browser => :chrome)

   end

   Capybara.javascript_driver = :chrome

add this gem to Gemfile:

 gem 'chromedriver-helper'

Then you will connect to the chromedriver

like image 172
Evan Avatar answered Nov 18 '25 09:11

Evan


If you still use 'chromedriver-helper' please note that 'chromedriver-helper' is deprecated after 2019-03-31. Please update to use the 'webdrivers' gem instead.

like image 39
Dende Avatar answered Nov 18 '25 09:11

Dende



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!