class Selenium::WebDriver::Safari::Driver

Driver implementation for Safari. @api private

Public Class Methods

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

  unless opts.key?(:url)
    driver_path = opts.delete(:driver_path) || Safari.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)
  @bridge.extend Bridge

  super(@bridge, listener: listener)
end

Public Instance Methods

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

Private Instance Methods

create_capabilities(opts = {}) click to toggle source
# File lib/selenium/webdriver/safari/driver.rb, line 60
def create_capabilities(opts = {})
  caps = opts.delete(:desired_capabilities) { Remote::Capabilities.safari }
  options = opts.delete(:options) { Options.new }
  caps.merge!(options.as_json)
  caps
end