class Selenium::WebDriver::Safari::Options
Attributes
data_dir[RW]
extensions[R]
port[RW]
skip_extension_installation[RW]
Public Class Methods
new(opts = {})
click to toggle source
# File lib/selenium/webdriver/safari/options.rb, line 8 def initialize(opts = {}) @extensions = [] extract_options(opts) end
Public Instance Methods
add_extension(ext)
click to toggle source
# File lib/selenium/webdriver/safari/options.rb, line 13 def add_extension(ext) @extensions << verify_safari_extension(ext) end
as_json()
click to toggle source
# File lib/selenium/webdriver/safari/options.rb, line 32 def as_json { 'port' => port, 'dataDir' => data_dir, 'cleanSession' => clean_session?, 'extensions' => extensions_as_json, 'skipExtensionInstallation' => skip_extension_installation? } end
clean_session?()
click to toggle source
# File lib/selenium/webdriver/safari/options.rb, line 17 def clean_session? !!@clean_session end
skip_extension_installation?()
click to toggle source
# File lib/selenium/webdriver/safari/options.rb, line 21 def skip_extension_installation? !!@skip_extension_installation end
to_capabilities()
click to toggle source
# File lib/selenium/webdriver/safari/options.rb, line 25 def to_capabilities caps = Remote::Capabilities.safari caps.merge!('safari.options' => as_json) caps end
Private Instance Methods
extensions_as_json()
click to toggle source
# File lib/selenium/webdriver/safari/options.rb, line 44 def extensions_as_json @extensions.map do |path| {'filename' => path.basename, 'contents' => Base64.strict_encode64(path.read) } end end
extract_options(opts)
click to toggle source
# File lib/selenium/webdriver/safari/options.rb, line 50 def extract_options(opts) @port = Integer(opts[:port] || PortProber.random) @data_dir = opts[:custom_data_dir] || opts[:data_dir] @clean_session = opts[:clean_session] Array(opts[:extensions]).each { |ext| add_extension(ext) } if opts.key?(:install_extension) @skip_extension_installation = !opts[:install_extension] elsif opts.key?(:skip_extension_installation) @skip_extension_installation = opts[:skip_extension_installation] else @skip_extension_installation = false end end
verify_safari_extension(path)
click to toggle source
# File lib/selenium/webdriver/safari/options.rb, line 66 def verify_safari_extension(path) pn = Pathname.new(path) unless pn.file? && pn.extname == '.safariextz' raise ArgumentError, "invalid Safari extension path: #{path}" end pn end