class ActionDispatch::SystemTesting::Browser
:nodoc:
def configure
def configure yield options if block_given? end
def default_chrome_options
def default_chrome_options options = ::Selenium::WebDriver::Chrome::Options.new options.add_argument("--disable-search-engine-choice-screen") options.add_argument("--headless") if name == :headless_chrome options.add_argument("--disable-gpu") if Gem.win_platform? options end
def default_firefox_options
def default_firefox_options options = ::Selenium::WebDriver::Firefox::Options.new options.add_argument("-headless") if name == :headless_firefox options end
def initialize(name)
def initialize(name) @name = name end
def options
def options @options ||= case type when :chrome default_chrome_options when :firefox default_firefox_options end end
def preload
driver_path is lazily initialized by default. Eagerly set it to avoid race
def preload case type when :chrome resolve_driver_path(::Selenium::WebDriver::Chrome) when :firefox resolve_driver_path(::Selenium::WebDriver::Firefox) end end
def resolve_driver_path(namespace)
def resolve_driver_path(namespace) # The path method has been deprecated in 4.20.0 if Gem::Version.new(::Selenium::WebDriver::VERSION) >= Gem::Version.new("4.20.0") namespace::Service.driver_path = ::Selenium::WebDriver::DriverFinder.new(options, namespace::Service.new).driver_path else namespace::Service.driver_path = ::Selenium::WebDriver::DriverFinder.path(options, namespace::Service) end end
def type
def type case name when :headless_chrome :chrome when :headless_firefox :firefox else name end end