Last active
December 22, 2015 21:39
-
-
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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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