Sha256: 244e63c021c1cdf02eb6aa751344c8d2c1b2dfffc0bbb2bdd938cef0441c2bbc

Contents?: true

Size: 1.47 KB

Versions: 17

Compression:

Stored size: 1.47 KB

Contents

# frozen_string_literal: true

require 'aranha/selenium/driver_factory/base'

module Aranha
  module Selenium
    class DriverFactory
      class Firefox < ::Aranha::Selenium::DriverFactory::Base
        def build
          ::Selenium::WebDriver.for(
            :firefox,
            options: ::Selenium::WebDriver::Firefox::Options.new(
              profile: build_profile,
              args: build_args
            ),
            desired_capabilities: build_capabilities
          )
        end

        private

        def build_args
          r = []
          r << '-headless' if headless?
          r
        end

        def build_capabilities
          if accept_insecure_certs?
            ::Selenium::WebDriver::Remote::Capabilities.firefox(accept_insecure_certs: true)
          else
            ::Selenium::WebDriver::Remote::Capabilities.firefox
          end
        end

        def build_profile
          r = ::Selenium::WebDriver::Firefox::Profile.new
          r['browser.download.dir'] = downloads_dir
          r['browser.download.folderList'] = 2
          r['browser.helperApps.neverAsk.saveToDisk'] = auto_download_mime_types.join(';')
          r['pdfjs.disabled'] = true
          r['general.useragent.override'] = user_agent if user_agent.present?
          r
        end

        def auto_download_mime_types
          ::File.read(
            ::File.join(__dir__, 'firefox_auto_download_mime_types')
          ).each_line.map(&:strip)
        end
      end
    end
  end
end

Version data entries

17 entries across 17 versions & 2 rubygems

Version Path
ehbrs-tools-0.20.0 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/firefox.rb
ehbrs-tools-0.19.0 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/firefox.rb
ehbrs-tools-0.18.0 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/firefox.rb
ehbrs-tools-0.17.0 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/firefox.rb
ehbrs-tools-0.16.5 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/firefox.rb
ehbrs-tools-0.16.4 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/firefox.rb
ehbrs-tools-0.16.3 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/firefox.rb
ehbrs-tools-0.16.2 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/firefox.rb
ehbrs-tools-0.16.1 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/firefox.rb
ehbrs-tools-0.16.0 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/firefox.rb
ehbrs-tools-0.15.0 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/firefox.rb
ehbrs-tools-0.14.1 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/firefox.rb
ehbrs-tools-0.14.0 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/firefox.rb
ehbrs-tools-0.13.1 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/firefox.rb
ehbrs-tools-0.13.0 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/firefox.rb
aranha-selenium-0.1.3 lib/aranha/selenium/driver_factory/firefox.rb
ehbrs-tools-0.12.0 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/firefox.rb