class Selenium::WebDriver::Edge::Driver

Driver implementation for Microsoft Edge. @api private

Public Class Methods

new(opts = {}) click to toggle source
Calls superclass method Selenium::WebDriver::Driver::new
# File lib/selenium/webdriver/edge/driver.rb, line 30
def initialize(opts = {})
  opts[:desired_capabilities] ||= Remote::W3C::Capabilities.edge

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

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

  listener = opts.delete(:listener)

  # Edge is mostly using W3C dialect, but a request to
  # create session responds with OSS-like body,
  # so we need to force W3C implementation.
  desired_capabilities = opts.delete(:desired_capabilities)
  bridge = Remote::Bridge.new(opts)
  capabilities = bridge.create_session(desired_capabilities)

  WebDriver.logger.info 'Forcing W3C dialect.'
  @bridge = Remote::W3C::Bridge.new(capabilities, bridge.session_id, opts)
  @bridge.extend Edge::Bridge

  super(@bridge, listener: listener)
end

Public Instance Methods

browser() click to toggle source
# File lib/selenium/webdriver/edge/driver.rb, line 60
def browser
  :edge
end
quit() click to toggle source
Calls superclass method Selenium::WebDriver::Driver#quit
# File lib/selenium/webdriver/edge/driver.rb, line 64
def quit
  super
ensure
  @service.stop if @service
end