Skip to content

Instantly share code, notes, and snippets.

@okitan
Last active December 22, 2015 21:39
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save okitan/6535177 to your computer and use it in GitHub Desktop.
Save okitan/6535177 to your computer and use it in GitHub Desktop.
DEPRECATED: This monkey patch is no longer needed. Use slenium-webdriver >= 2.37.0 ! monkey patch for selenium-webdriver to work with chromedriver2
require "selenium/webdriver"
require "selenium/webdriver/chrome"
module Selenium
module WebDriver
module Chrome
class Bridge
def create_capabilities(opts)
caps = opts.delete(:desired_capabilities) { Remote::Capabilities.chrome }
args = opts.delete(:args) || opts.delete(:switches)
native_events = opts.delete(:native_events)
verbose = opts.delete(:verbose)
# profile = opts.delete(:profile)
prefs = opts.delete(:profile) || opts.delete(:prefs) # added this line
detach = opts.delete(:detach)
proxy = opts.delete(:proxy)
no_website_testing_defaults = opts.delete(:no_website_testing_defaults)
unless opts.empty?
raise ArgumentError, "unknown option#{'s' if opts.size != 1}: #{opts.inspect}"
end
chrome_options = caps['chromeOptions'] || {}
if args
unless args.kind_of? Array
raise ArgumentError, ":args must be an Array of Strings"
end
chrome_options['args'] = args.map { |e| e.to_s }
end
# if profile
# data = profile.as_json
#
# chrome_options.merge! 'profile' => data['zip'],
# 'extensions' => data['extensions']
# end
caps["chrome.prefs"] = prefs if prefs # added this line
chrome_options['binary'] = Chrome.path if Chrome.path
chrome_options['nativeEvents'] = true if native_events
chrome_options['verbose'] = true if verbose
chrome_options['detach'] = detach.nil? || !!detach
chrome_options['noWebsiteTestingDefaults'] = true if no_website_testing_defaults
caps['chromeOptions'] = chrome_options
caps['proxy'] = proxy if proxy
# legacy options - for chromedriver < 17.0.963.0
#caps["chrome.switches"] = chrome_options['args'] if chrome_options.member?('args')
%w[binary detach extensions nativeEvents noWebsiteTestingDefaults profile verbose].each do |key|
caps["chrome.#{key}"] = chrome_options[key] if chrome_options.member?(key)
end
caps
end
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment