Use Chrome with Cucumber & Capybara

Photo by Tambako the Jaguar, used under Creative Commons

We frequently swap out Firefox for Chrome in our selenium (@javascript) cucumber tests. It is actually very easy, but not widely known.

Update: I got some questions about why we’d use Chrome. Speed hasn’t been the issue (use capybara-webkit for that) but we have found some things that work better in Chrome vs Firefox (and vice-versa). Also, you get different rendering options and different standards support (for example, websockets). If you’re having test problems, switching probably isn’t your solution, but you can always try.

Step 1 – Tell Capybara about Chrome

Inside your features/support/env.rb add these lines:

Capybara.register_driver :chrome do |app|, :browser => :chrome)

Capybara.javascript_driver = :chrome

Step 2 – Install chromedriver

If you’re using homebrew on OS X (and why wouldn’t you?) simply install using:

brew install chromedriver

Otherwise, download it manually and make sure it is in your path (I typically put it in /usr/local/bin).

Step 3 – Run the features

Run your features and anything tagged with @javascript or @selenium is now running in Chrome instead of Firefox. Yay!

Daniel Morrison


Post a Comment

(optional — will be included as a link.)
  1. Thanks mate, this works fiine, but do you know how to override the user agent of the chrome browser? i’ve seen alot of tutorials but only with Firefox, but i much rather do it with chrome browser.

    September 27, 2012 at 0:31 AM
  2. @glenn: see

    December 17, 2012 at 11:31 AM
  3. no able to find inner html of an element

    Hello World

    not able o get value “Hello World”
    Using cucumber, capybara and crome driver
    All Latest versions

    March 26, 2013 at 20:09 PM
  4. Does not work on mavricks

    November 15, 2013 at 21:31 PM
  5. My env.rb looks like this:

    Capybara.default_selector = :css
    Capybara.register_driver :selenium do |app|, :browser => :chrome, :switches => %w[—test-type]) #comment it out!!!
    ActionController::Base.allow_rescue = false
      DatabaseCleaner.strategy = :transaction
    rescue NameError
      raise “You need to add database_cleaner to your Gemfile (in the :test group) if you wish to use it.”
    Cucumber::Rails::Database.javascript_strategy = :truncation

    that’s the parts that are not commented out anyway. It works great. I would like to test in firefox as well, and ideally eventually with other browsers. How do I switch back to firefox? 


    October 16, 2014 at 13:57 PM