class Selenium::WebDriver::Chrome::Bridge

@api private

Public Class Methods

new(opts = {}) click to toggle source
Calls superclass method
# File lib/selenium/webdriver/chrome/bridge.rb, line 8
def initialize(opts = {})
  http_client   = opts.delete(:http_client)
  switches      = opts.delete(:switches)
  native_events = opts.delete(:native_events)
  verbose       = opts.delete(:verbose)
  profile       = opts.delete(:profile)

  unless opts.empty?
    raise ArgumentError, "unknown option#{'s' if opts.size != 1}: #{opts.inspect}"
  end

  caps = Remote::Capabilities.chrome

  if switches
    unless switches.kind_of? Array
      raise ArgumentError, ":switches must be an Array of Strings"
    end

    caps.merge! 'chrome.switches' => switches.map { |e| e.to_s }
  end

  caps.merge! 'chrome.binary'       => Chrome.path if Chrome.path
  caps.merge! 'chrome.nativeEvents' => true if native_events
  caps.merge! 'chrome.verbose'      => true if verbose
  caps.merge! 'chrome.profile'      => profile.as_json['zip'] if profile

  @service = Service.default_service
  @service.start

  remote_opts = {
    :url                  => @service.uri,
    :desired_capabilities => caps
  }

  remote_opts.merge!(:http_client => http_client) if http_client

  super(remote_opts)
end

Public Instance Methods

browser() click to toggle source
# File lib/selenium/webdriver/chrome/bridge.rb, line 47
def browser
  :chrome
end
capabilities() click to toggle source
# File lib/selenium/webdriver/chrome/bridge.rb, line 58
def capabilities
  @capabilities ||= Remote::Capabilities.chrome
end
driver_extensions() click to toggle source
# File lib/selenium/webdriver/chrome/bridge.rb, line 51
def driver_extensions
  [
    DriverExtensions::TakesScreenshot,
    DriverExtensions::HasInputDevices
  ]
end
quit() click to toggle source
Calls superclass method
# File lib/selenium/webdriver/chrome/bridge.rb, line 62
def quit
  super
ensure
  @service.stop
end