Parent

Class/Module Index [+]

Quicksearch

Selenium::WebDriver::Remote::Capabilities

Specification of the desired and/or actual capabilities of the browser that the server is being asked to create.

Constants

DEFAULTS

Public Class Methods

android(opts = {}) click to toggle source
# File lib/selenium/webdriver/remote/capabilities.rb, line 44
def android(opts = {})
  new({
    :browser_name     => "android",
    :platform         => :android,
    :rotatable        => true,
    :takes_screenshot => true
  }.merge(opts))
end
chrome(opts = {}) click to toggle source
# File lib/selenium/webdriver/remote/capabilities.rb, line 53
def chrome(opts = {})
  new({
    :browser_name          => "chrome",
    :javascript_enabled    => true,
    :css_selectors_enabled => true
  }.merge(opts))
end
firefox(opts = {}) click to toggle source
# File lib/selenium/webdriver/remote/capabilities.rb, line 61
def firefox(opts = {})
  new({
    :browser_name          => "firefox",
    :javascript_enabled    => true,
    :takes_screenshot      => true,
    :css_selectors_enabled => true
  }.merge(opts))
end
htmlunit(opts = {}) click to toggle source
# File lib/selenium/webdriver/remote/capabilities.rb, line 70
def htmlunit(opts = {})
  new({
    :browser_name => "htmlunit"
  }.merge(opts))
end
ie(opts = {}) click to toggle source
Alias for: internet_explorer
internet_explorer(opts = {}) click to toggle source
# File lib/selenium/webdriver/remote/capabilities.rb, line 76
def internet_explorer(opts = {})
  new({
    :browser_name          => "internet explorer",
    :platform              => :windows,
    :takes_screenshot      => true,
    :css_selectors_enabled => true
  }.merge(opts))
end
Also aliased as: ie
iphone(opts = {}) click to toggle source
# File lib/selenium/webdriver/remote/capabilities.rb, line 86
def iphone(opts = {})
  new({
    :browser_name       => "iphone",
    :platform           => :mac,
    :javascript_enabled => true
  }.merge(opts))
end
json_create(data) click to toggle source

@api private

# File lib/selenium/webdriver/remote/capabilities.rb, line 107
def json_create(data)
  data = data.dup

  caps = new
  caps.browser_name          = data.delete("browserName")
  caps.version               = data.delete("version")
  caps.platform              = data.delete("platform").downcase.to_sym
  caps.javascript_enabled    = data.delete("javascriptEnabled")
  caps.css_selectors_enabled = data.delete("cssSelectorsEnabled")
  caps.takes_screenshot      = data.delete("takesScreenshot")
  caps.native_events         = data.delete("nativeEvents")
  caps.rotatable             = data.delete("rotatable")
  caps.proxy                 = Proxy.json_create(data['proxy']) if data.has_key?('proxy')

  # any remaining pairs will be added as is, with no conversion
  caps.merge!(data)

  caps
end
new(opts = {}) click to toggle source

@option :browser_name [String] required browser name @option :version [String] required browser version number @option :platform [Symbol] one of :any, :win, :mac, or :x @option :javascript_enabled [Boolean] does the driver have javascript enabled? @option :css_selectors_enabled [Boolean] does the driver support CSS selectors? @option :takes_screenshot [Boolean] can this driver take screenshots? @option :native_events [Boolean] does this driver use native events? @option :proxy [Selenium::WebDriver::Proxy, Hash] proxy configuration

Firefox-specific options:

@option :firefox_profile [Selenium::WebDriver::Firefox::Profile] the firefox profile to use

@api public

# File lib/selenium/webdriver/remote/capabilities.rb, line 144
def initialize(opts = {})
  @capabilities = DEFAULTS.merge(opts)
  self.proxy    = opts.delete(:proxy)
end
opera(opts = {}) click to toggle source
# File lib/selenium/webdriver/remote/capabilities.rb, line 94
def opera(opts = {})
  new({
    :browser_name          => "opera",
    :javascript_enabled    => true,
    :takes_screenshot      => true,
    :css_selectors_enabled => true
  }.merge(opts))
end

Public Instance Methods

==(other) click to toggle source
# File lib/selenium/webdriver/remote/capabilities.rb, line 212
def ==(other)
  return false unless other.kind_of? self.class
  as_json == other.as_json
end
Also aliased as: eql?
[](key) click to toggle source
# File lib/selenium/webdriver/remote/capabilities.rb, line 157
def [](key)
  @capabilities[key]
end
[]=(key, value) click to toggle source

Allows setting arbitrary capabilities.

# File lib/selenium/webdriver/remote/capabilities.rb, line 153
def []=(key, value)
  @capabilities[key] = value
end
as_json(opts = nil) click to toggle source

@api private

# File lib/selenium/webdriver/remote/capabilities.rb, line 185
def as_json(opts = nil)
  hash = {}

  @capabilities.each do |key, value|
    case key
    when :platform
      hash['platform'] = value.to_s.upcase
    when :firefox_profile
      hash['firefox_profile'] = value.as_json['zip'] if value
    when :proxy
      hash['proxy'] = value.as_json if value
    when String
      hash[key] = value
    when Symbol
      hash[camel_case(key.to_s)] = value
    else
      raise TypeError, "expected String or Symbol, got #{key.inspect}:#{key.class} / #{value.inspect}"
    end
  end

  hash
end
eql?(other) click to toggle source
Alias for: ==
merge!(other) click to toggle source
# File lib/selenium/webdriver/remote/capabilities.rb, line 161
def merge!(other)
  if other.respond_to?(:capabilities) && other.capabilities.kind_of?(Hash)
    @capabilities.merge! other.capabilities
  elsif other.kind_of? Hash
    @capabilities.merge! other
  else
    raise ArgumentError, "argument should be a Hash or implement #capabilities"
  end
end
proxy=(proxy) click to toggle source
# File lib/selenium/webdriver/remote/capabilities.rb, line 171
def proxy=(proxy)
  case proxy
  when Hash
    @capabilities[:proxy] = Proxy.new(proxy)
  when Proxy, nil
    @capabilities[:proxy] = proxy
  else
    raise TypeError, "expected Hash or #{Proxy.name}, got #{proxy.inspect}:#{proxy.class}"
  end
end
to_json(*args) click to toggle source
# File lib/selenium/webdriver/remote/capabilities.rb, line 208
def to_json(*args)
  as_json.to_json(*args)
end

Protected Instance Methods

capabilities() click to toggle source
# File lib/selenium/webdriver/remote/capabilities.rb, line 220
def capabilities
  @capabilities
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.