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 32
def initialize(opts = {})
  opts[:desired_capabilities] = create_capabilities(opts)

  unless opts.key?(:url)
    driver_path = opts.delete(:driver_path) || IE.driver_path
    driver_opts = opts.delete(:driver_opts) || {}
    port = opts.delete(:port) || Service::DEFAULT_PORT

    @service = Service.new(driver_path, port, driver_opts)
    @service.start
    opts[:url] = @service.uri
  end

  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 50
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 54
def quit
  super
ensure
  @service.stop if @service
end

Private Instance Methods

create_capabilities(opts) click to toggle source
# File lib/selenium/webdriver/ie/driver.rb, line 62
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