lib/true_automation/driver/capybara.rb in true_automation-0.6.0 vs lib/true_automation/driver/capybara.rb in true_automation-0.6.1
- old
+ new
@@ -91,17 +91,15 @@
@remote = ''
options ||= {}
ta_url = options[:ta_url] || "http://localhost:#{@port}/"
- capabilities = options[:capabilities] || {}
+ capabilities = options[:capabilities] || Selenium::WebDriver::Options.chrome
if options && options[:browser] == :remote
raise 'Remote driver URL is not specified' unless options[:url]
- input_caps = opts_to_json(options[:capabilities]) || {}
- browser = opts_browser(options[:capabilities] || Selenium::WebDriver::Options.chrome)
- capabilities = options_class(browser).new(**input_caps)
+ capabilities = duplicate_options(capabilities)
capabilities.add_preference(:taRemoteUrl, options[:url])
@remote = ' --remote'
end
@options.merge!(browser: :remote,
@@ -167,19 +165,26 @@
opts.is_a?(Selenium::WebDriver::Options) ?
opts&.options :
opts&.as_json
end
- def fetch_options(options)
- if options.delete(:ta_recorder)
- @ta_recorder = ' --ta-recorder'
+ def duplicate_options(original_options)
+ browser = opts_browser(original_options || Selenium::WebDriver::Options.chrome)
+ opts = opts_to_json(original_options) || {}
+ capabilities = options_class(browser).new(**opts)
+ original_options.extensions.each do |ext|
+ capabilities.add_extension(ext)
end
+ capabilities
+ end
+
+ def fetch_options(options)
if options.key?(:options)
- browser = opts_browser(options[:options])
- opts = opts_to_json(options[:options])
- desCaps = options_class(browser).new(**opts)
- options[:capabilities] = desCaps
+ options[:capabilities] = duplicate_options(options[:options])
options.delete(:options)
+ end
+ if options.delete(:ta_recorder)
+ @ta_recorder = ' --ta-recorder'
end
options
end
def copy_options(caps, opts)