class Selenium::WebDriver::IE::Driver

Driver implementation for Internet Explorer supporting both OSS and W3C dialects of JSON wire protocol. @api private

Public Class Methods

new(opts = {}) click to toggle source
Calls superclass method Selenium::WebDriver::Driver::new
# File lib/selenium/webdriver/ie/driver.rb, line 34
def initialize(opts = {})
  opts[:desired_capabilities] = create_capabilities(opts)

  opts[:url] ||= service_url(opts)

  listener = opts.delete(:listener)
  @bridge = Remote::Bridge.handshake(**opts)
  super(@bridge, listener: listener)
end

Public Instance Methods

browser() click to toggle source
# File lib/selenium/webdriver/ie/driver.rb, line 44
def browser
  :internet_explorer
end
quit() click to toggle source
Calls superclass method Selenium::WebDriver::Driver#quit
# File lib/selenium/webdriver/ie/driver.rb, line 48
def quit
  super
ensure
  @service&.stop
end

Private Instance Methods

create_capabilities(opts) click to toggle source
# File lib/selenium/webdriver/ie/driver.rb, line 56
def create_capabilities(opts)
  caps = opts.delete(:desired_capabilities) { Remote::Capabilities.internet_explorer }
  options = opts.delete(:options) { Options.new }

  if opts.delete(:introduce_flakiness_by_ignoring_security_domains)
    WebDriver.logger.deprecate ':introduce_flakiness_by_ignoring_security_domains',
                               'Selenium::WebDriver::IE::Options#ignore_protected_mode_settings='
    options.ignore_protected_mode_settings = true
  end

  native_events = opts.delete(:native_events)
  unless native_events.nil?
    WebDriver.logger.deprecate ':native_events', 'Selenium::WebDriver::IE::Options#native_events='
    options.native_events = native_events
  end

  # Backward compatibility with older IEDriverServer versions
  caps[:ignore_protected_mode_settings] = options.ignore_protected_mode_settings
  caps[:native_events] = options.native_events

  options = options.as_json
  caps.merge!(options) unless options.empty?

  caps
end