class Selenium::WebDriver::Service

def chrome(**)

def chrome(**)
  Chrome::Service.new(**)
end

def driver_path=(path)

def driver_path=(path)
  Platform.assert_executable path if path.is_a?(String)
  @driver_path = path
end

def edge(**)

def edge(**)
  Edge::Service.new(**)
end

def firefox(**)

def firefox(**)
  Firefox::Service.new(**)
end

def ie(**)

def ie(**)
  IE::Service.new(**)
end

def initialize(path: nil, port: nil, log: nil, args: nil)

def initialize(path: nil, port: nil, log: nil, args: nil)
  port ||= self.class::DEFAULT_PORT
  args ||= []
  @executable_path = path
  @host = Platform.localhost
  @port = Integer(port)
  @log = case log
         when :stdout
           $stdout
         when :stderr
           $stderr
         else
           log
         end
  @args = args
  raise Error::WebDriverError, "invalid port: #{@port}" if @port < 1
end

def launch

def launch
  @executable_path ||= DriverFinder.new(nil, self).driver_path
  ServiceManager.new(self).tap(&:start)
end

def safari(**)

def safari(**)
  Safari::Service.new(**)
end

def shutdown_supported

def shutdown_supported
  self.class::SHUTDOWN_SUPPORTED
end

def warn_driver_log_override

def warn_driver_log_override
  WebDriver.logger.warn('SE_DEBUG is set; overriding user-specified driver logging settings', id: :se_debug)
end