class Selenium::WebDriver::Firefox::Service
def configure_debug_args(args)
def configure_debug_args(args) # An explicit geckodriver log setting is more specific than Selenium's # generic SE_DEBUG fallback, so preserve it and skip adding `-v`. if args.any? { |arg| arg.start_with?('--log') } warn_explicit_log_preference unless @log_preference_warned @log_preference_warned = true args.reject! { |arg| arg.start_with?('-v') } return end args << '-v' unless args.any? { |arg| /\A-v+\z/.match?(arg) } end
def initialize(args: nil, **)
def initialize(args: nil, **) args = Array(args.dup) unless args.any? { |arg| arg.include?('--connect-existing') || arg.include?('--websocket-port') } args << '--websocket-port' args << '0' end configure_debug_args(args) if ENV.key?('SE_DEBUG') super end
def launch
def launch configure_debug_args(args) if ENV.key?('SE_DEBUG') super end
def warn_explicit_log_preference
def warn_explicit_log_preference WebDriver.logger.warn('SE_DEBUG is set; preserving user-specified geckodriver --log setting instead of ' \ 'adding -v', id: :se_debug) end