1. ko30005

    No comment

    ko30005
Changes in body
Source | HTML | Preview
@@ -1,53 +1,54 @@
+Rails + Capybara + Selenium でフロントエンド側のテストを、Chrome Headlessモードで実行する手順を残しておきます。
## 手順
- `Gemfile`に以下を追加
```rb
gem 'capybara'
gem 'selenium-webdriver'
gem 'chromedriver-helper'
```
- `bundle install`実行
- `spec_helper`に以下を追加
```rb
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モードで実行できます
- 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