Help us understand the problem. What is going on with this article?

RailsにCapybara + Seleniumを導入してChrome Headlessモードで実行する手順

More than 1 year has passed since last update.

Rails + Capybara + Selenium でフロントエンド側のテストをChrome Headlessモードで実行する手順を残しておきます。

手順

  • Gemfileに以下を追加
gem 'capybara'
gem 'selenium-webdriver'
gem 'chromedriver-helper'
  • bundle install実行
  • spec_helperに以下を追加
require 'selenium-webdriver'
require 'capybara/rspec'

# Capybara自体の設定、ここではどのドライバーを使うかを設定しています
Capybara.configure do |capybara_config|
  capybara_config.default_driver = :selenium_chrome
  capybara_config.default_max_wait_time = 10 # 一つのテストに10秒以上かかったらタイムアウトするように設定しています
end
# Capybaraに設定したドライバーの設定をします
Capybara.register_driver :selenium_chrome do |app|
  options = Selenium::WebDriver::Chrome::Options.new
  options.add_argument('headless') # ヘッドレスモードをonにするオプション
  options.add_argument('--disable-gpu') # 暫定的に必要なフラグとのこと
  Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)
end

Capybara.javascript_driver = :selenium_chrome
  • これでheadlessモードで実行できます
  • ※Chrome 59以上でないとheadlessモードは実行できません。。。

chromedriverの更新方法

  • 下記ファイルを削除します 
    • .chromedriver-helper
  • その後run chromedriver-update実行で更新できます。
  • ※ Gemfile でchromedriver-helper を入れている場合は
    • bundle exec chromedriver-update

追記

  • 2月9日
    • コードに簡単なコメントを追加しました

参照

https://github.com/teamcapybara/capybara#selenium
https://github.com/SeleniumHQ/selenium/wiki/Ruby-Bindings
https://developers.google.com/web/updates/2017/04/headless-chrome?hl=ja

ko30005
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした