Class: Selenium::WebDriver::Safari::Driver Private

Inherits:
Driver
  • Object
show all
Includes:
DriverExtensions::TakesScreenshot
Defined in:
lib/selenium/webdriver/safari/driver.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Driver implementation for Safari.

API:

  • private

Constant Summary

Constants included from Selenium::WebDriver::SearchContext

Selenium::WebDriver::SearchContext::FINDERS

Instance Method Summary collapse

Methods included from DriverExtensions::TakesScreenshot

#save_screenshot, #screenshot_as

Methods inherited from Driver

#[], #action, #browser, #capabilities, #close, #current_url, #execute_async_script, #execute_script, for, #get, #inspect, #keyboard, #manage, #mouse, #navigate, #page_source, #ref, #switch_to, #title, #window_handle, #window_handles

Methods included from Selenium::WebDriver::SearchContext

#find_element, #find_elements

Constructor Details

#initialize(opts = {}) ⇒ Driver

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of Driver.

API:

  • private



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/selenium/webdriver/safari/driver.rb', line 32

def initialize(opts = {})
  opts[:desired_capabilities] ||= Remote::Capabilities.safari

  unless opts.key?(:url)
    driver_path = opts.delete(:driver_path) || Safari.driver_path
    port = opts.delete(:port) || Service::DEFAULT_PORT

    opts[:driver_opts] ||= {}
    if opts.key? :service_args
      WebDriver.logger.deprecate ':service_args', "driver_opts: {args: #{opts[:service_args]}}"
      opts[:driver_opts][:args] = opts.delete(:service_args)
    end

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

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

Instance Method Details

#quitObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



55
56
57
58
59
# File 'lib/selenium/webdriver/safari/driver.rb', line 55

def quit
  super
ensure
  @service.stop if @service
end