自動テスト Web アプリにカピバラ、キュウリ、ポルターガイストを使用しています。env.rb に登録されているドライバーであるポルターガイスト (phantomjs) からヘッドレス クロームに切り替えることにしました。
Capybara.register_driver :headless_chrome do |app|
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
chromeOptions: { args: ['headless', 'disable-gpu', 'disable-web-security'] })
Capybara::Selenium::Driver.new app,
browser: :chrome,
desired_capabilities: capabilities
end
config.default_driver = :headless_chrome
config.javascript_driver = :headless_chrome
次に、他のドライバー設定を登録しました:
Capybara.register_driver :selenium_chrome do |app|
Capybara::Selenium::Driver.new(app, :browser => :chrome, args:
['headless', 'disable-gpu', 'disable-web-security'])
end
テストを実行すると、Chrome が読み込まれますが、アクティブなウィンドウはありません。それでうまくいくはずですか?近いうちに docker コンテナー (GUI なしの ubuntu) でテストを実行する予定ですが、Chrome ブラウザーをインストールする必要がありますか?
Mac OS X 10.12.5 Chrome 60 Chromedriver 2.31
Gems: selenium-webdriver (3.4.4, 2.53.4, 2.53.0) capybara (2.14.4, 2.10.1, 2.6.2, 2.4.4) chromedriver-helper (1.0.0)