1. ko30005

    No comment

    ko30005
Changes in body
Source | HTML | Preview
@@ -1,56 +1,46 @@
## 手順
- `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 # seconds
+ 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')
- options.add_argument('--disable-gpu')
+ 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モードで実行する場合もし以下のエラーが出た場合は
-```
-WARN Selenium [DEPRECATION] :args or :switches is deprecated. Use Selenium::WebDriver::Chrome::Options#add_argument instead.
-```
-- 先ほど記述した`spec_helper`の
-`Capybara.register_driver :selenium_chrome`ブロック内に以下を追加することで解消します
-
-```rb
-options = Selenium::WebDriver::Chrome::Options.new
-options.add_argument('headless')
-options.add_argument('--disable-gpu')
-```
-
- ※Chrome 59以上でないとheadlessモードは実行できません。。。
## chromedriverの更新方法
- 下記ファイルを削除します 
- `.chromedriver-helper`
- その後`run chromedriver-update`実行で更新できます。
- ※ Gemfile で`chromedriver-helper` を入れている場合は
- `bundle exec chromedriver-update`
## 参照
https://github.com/teamcapybara/capybara#selenium
https://github.com/SeleniumHQ/selenium/wiki/Ruby-Bindings