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)