require 'capybara/rspec' require 'capybara-screenshot/rspec' require 'rack_session_access/capybara' RSpec.configure do Capybara.default_max_wait_time = 4 Capybara.javascript_driver = :selenium end Rails.application.config do config.middleware.use RackSessionAccess::Middleware end Capybara.register_server :thin do |app, port, host| require 'rack/handler/thin' Rack::Handler::Thin.run(app, Port: port, Host: host) end Capybara.server = :thin Capybara.register_driver :selenium do |app| require 'selenium/webdriver' Selenium::WebDriver::Firefox::Binary.path = ENV['FIREFOX_BINARY_PATH'] || Selenium::WebDriver::Firefox::Binary.path capabilities = Selenium::WebDriver::Remote::Capabilities.internet_explorer capabilities["elementScrollBehavior"] = 1 client = Selenium::WebDriver::Remote::Http::Default.new client.timeout = 180 profile = Selenium::WebDriver::Firefox::Profile.new profile['intl.accept_languages'] = 'en' profile['browser.download.dir'] = DownloadedFile::PATH.to_s profile['browser.download.folderList'] = 2 profile['browser.helperApps.neverAsk.saveToDisk'] = 'text/csv' Capybara::Selenium::Driver.new( app, browser: :firefox, profile: profile, http_client: client, desired_capabilities: capabilities ) end