class Rspeckled::Selenium::Drivers::Chrome

Attributes

downloads_directory[R]

Public Class Methods

new(options) click to toggle source
# File lib/rspeckled/plugins/extensions/selenium/drivers/chrome.rb, line 9
def initialize(options)
  self.downloads_directory = options.fetch(:downloads_directory)
end

Public Instance Methods

driver(app) click to toggle source
# File lib/rspeckled/plugins/extensions/selenium/drivers/chrome.rb, line 13
def driver(app)
  ::Capybara::Selenium::Driver.new(
    app,
    browser: :chrome,
    options: options,
  )
end
headless(app) click to toggle source
# File lib/rspeckled/plugins/extensions/selenium/drivers/chrome.rb, line 21
def headless(app)
  ::Capybara::Selenium::Driver.new(
    app,
    browser: :chrome,
    options: headless_options,
  )
end

Private Instance Methods

downloads_directory=(dir) click to toggle source
# File lib/rspeckled/plugins/extensions/selenium/drivers/chrome.rb, line 31
def downloads_directory=(dir)
  ::Dir.mkdir(dir) unless ::Dir.exist?(dir)

  @downloads_directory = dir
end
headless_options() click to toggle source
# File lib/rspeckled/plugins/extensions/selenium/drivers/chrome.rb, line 45
def headless_options
  options.dup.tap do |browser_options|
    browser_options.add_argument('--headless')
    browser_options.add_argument('--disable-gpu')
  end
end
options() click to toggle source
# File lib/rspeckled/plugins/extensions/selenium/drivers/chrome.rb, line 37
def options
  browser_options = ::Selenium::WebDriver::Chrome::Options.new
  browser_options.add_preference(:profile, prompt_for_download: { popups: 0 })
  browser_options.add_preference(:download, default_directory: downloads_directory)
  browser_options.add_argument('--window-size=1920,1200')
  browser_options
end