Use Chrome with Cucumber & Capybara
Photo by Tambako the Jaguar, used under Creative Commons https://flic.kr/p/dJD2dV
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|
Capybara::Selenium::Driver.new(app, :browser => :chrome)
end
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!
Comments
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.
@glenn: see https://makandracards.com/makandra/8381-run-chrome-in-a-specific-resolution-or-user-agent-with-selenium.
no able to find inner html of an element
eg
Hello World
not able o get value “Hello World”
Using cucumber, capybara and crome driver
All Latest versions
Does not work on mavricks
My env.rb looks like this:
Capybara.default_selector = :css
Capybara.register_driver :selenium do |app|
Capybara::Selenium::Driver.new(app, :browser => :chrome, :switches => %w[–test-type]) #comment it out!!!
end
ActionController::Base.allow_rescue = false
begin
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.”
end
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?
thanks.
You completed a few nice points there. I did a search on the theme and found nearly all persons will consent with your blog.
Thank you!!!! I did not install Mercury Reader because I use Firefox but it has an add on simply titled “Reader” and it is fantastic. Your article motivated me to look it up.