def initialize(opts = {})
opts = opts.dup
http_client = opts.delete(:http_client) { Http::Default.new }
desired_capabilities = opts.delete(:desired_capabilities) { Capabilities.firefox }
url = opts.delete(:url) { "http://#{Platform.localhost}:4444/wd/hub" }
unless opts.empty?
raise ArgumentError, "unknown option#{'s' if opts.size != 1}: #{opts.inspect}"
end
if desired_capabilities.kind_of?(Symbol)
unless Capabilities.respond_to?(desired_capabilities)
raise Error::WebDriverError, "invalid desired capability: #{desired_capabilities.inspect}"
end
desired_capabilities = Capabilities.send(desired_capabilities)
end
uri = URI.parse(url)
uri.path += "/" unless uri.path =~ /\/$/
http_client.server_url = uri
@http = http_client
@capabilities = create_session(desired_capabilities)
end