class Selenium::WebDriver::Firefox::Options
def add_argument(arg)
def add_argument(arg) @options[:args] << arg end
def add_preference(name, value)
def add_preference(name, value) @options[:prefs][name] = value end
def camelize?(key)
def camelize?(key) key != 'prefs' end
def enable_android(package: 'org.mozilla.firefox', serial_number: nil, activity: nil, intent_arguments: nil)
def enable_android(package: 'org.mozilla.firefox', serial_number: nil, activity: nil, intent_arguments: nil) @options[:android_package] = package @options[:android_activity] = activity unless activity.nil? @options[:android_device_serial] = serial_number unless serial_number.nil? @options[:android_intent_arguments] = intent_arguments unless intent_arguments.nil? end
def initialize(log_level: nil, **opts)
def initialize(log_level: nil, **opts) @debugger_address = opts.delete(:debugger_address) { true } opts[:accept_insecure_certs] = true unless opts.key?(:accept_insecure_certs) super(**opts) @options[:args] ||= [] @options[:prefs] ||= {} # Firefox 129 onwards the CDP protocol will not be enabled by default. Setting this preference will enable it. # https://fxdx.dev/deprecating-cdp-support-in-firefox-embracing-the-future-with-webdriver-bidi/. @options[:prefs]['remote.active-protocols'] = 3 @options[:env] ||= {} @options[:log] ||= {level: log_level} if log_level process_profile(@options.delete(:profile)) end
def log_level
def log_level @options.dig(:log, :level) end
def log_level=(level)
def log_level=(level) @options[:log] = {level: level} end
def process_browser_options(browser_options)
def process_browser_options(browser_options) browser_options['moz:debuggerAddress'] = true if @debugger_address options = browser_options[KEY] options['binary'] ||= Firefox.path if Firefox.path options['profile'] = @profile if @profile end
def process_profile(profile)
def process_profile(profile) @profile = case profile when nil nil when Profile profile else Profile.from_name(profile) end end
def profile=(profile)
def profile=(profile) process_profile(profile) end