How to run your feature specs using Capybara and Headless Chrome

How to run your feature specs using Capybara and Headless Chrome

Google has recently announced a way to run the Chrome browser in a headless environment. If you’re using Capybara gem, you can easily start using headless Chrome. Without further ado, let’s do it:

1) Make sure you have one of the following Chrome versions:

  • 57+ on Linux
  • 59+ on macOS
  • 60+ on Windows

(the last one hasn’t been released yet, so you have to use the beta, aka “Canary”)

2) Add (or update) the gem selenium-webdriver;

3) Make sure you’re using ChromeDriver version 2.30 or higher. You can install it by running brew install chromedriver on macOS or apt-get install chromium-chromedriver on Debian/Ubuntu Linux.

4) Add the following driver to your spec_helper.rb or rails_helper.rb:

Capybara.register_driver :chrome do |app| app, browser: :chrome,
    options: %w[headless disable-gpu])

Capybara.javascript_driver = :chrome

Done, enjoy headless Chrome! ᕕ( ᐛ )ᕗ

You might get a warning like the following:

WARN Selenium [DEPRECATION] :args or :switches is deprecated. Use Selenium::WebDriver::Chrome::Options#add_argument instead.

Make sure you don’t have another registered driver, I made this mistake myself and had an iphone driver, which was passing args in the old way and turned out to be the reason why I was getting the warning.

  • Khắc Thành

    Do you have any article about installing chrome driver to run test with CI as or ?

Comments are closed.