Selenium Webdriverでrspecテストを実行しています。セットアップは次のようになります。
require 'capybara/dsl'
Capybara.app = Rack::File.new File.expand_path('../fixtures', __FILE__)
require 'Selenium-webdriver'
Capybara.register_driver :firefox do |app|
options = ::Selenium::WebDriver::Firefox::Options.new
options.args << '--headless' if travis?
Capybara::Selenium::Driver.new(app, browser: :firefox, options: options)
end
Capybara.default_driver = :firefox
rspec
を実行すると、テストが失敗します
Failure/Error: visit '/select2-v3/index.html'
Selenium::WebDriver::Error::UnknownError:
newSession
# WebDriverError@chrome://marionette/content/error.js:178:5
# UnknownCommandError@chrome://marionette/content/error.js:472:5
# despatch@chrome://marionette/content/server.js:290:13
# execute@chrome://marionette/content/server.js:271:11
# onPacket/<@chrome://marionette/content/server.js:246:15
# onPacket@chrome://marionette/content/server.js:245:8
# _onJSONObjectReady/<@chrome://marionette/content/transport.js:490:9
# ./spec/select2_spec.rb:6:in `block (2 levels) in <top (required)>'
グーグルで回しても結果は得られませんでした。
それを修正する方法について何かアイデアはありますか?
更新:私はfirefox v63.0を使用しています
Firefox 63で使用するには、最新バージョンのgeckodriver
(v0.23.0)にアップグレードする必要があります。
私はbrew install geckodriver
を実行してからbrew link geckodriver
を試行しましたが、ターゲットファイルディレクトリがすでに存在するというエラーメッセージが表示されました。そのため、rm '/usr/local/bin/geckodriver'
を使用して再度リンクする前に、brew link geckodriver
を使用してターゲットファイルディレクトリを削除しました