class Applitools::Selenium::TakesScreenshotImageProvider

@!visibility private

Attributes

debug_screenshot_provider[RW]
debug_screenshots[RW]
driver[RW]

Public Class Methods

new(driver, options = {}) click to toggle source

Initialize an Applitools::Selenium::TakesScreenshotImageProvider.

@param [Applitools::Selenium::Driver] driver @param [Hash] options The options for taking a screenshot. @option options [Boolean] :debug_screenshots @option options [Enumerator] :name_enumerator The name enumerator.

# File lib/applitools/selenium/takes_screenshot_image_provider.rb, line 17
def initialize(driver, options = {})
  self.driver = driver
  options = { debug_screenshots: false }.merge! options
  self.debug_screenshot_provider = options[:debug_screenshot_provider]
end

Public Instance Methods

take_screenshot(options = {}) click to toggle source

Takes a screenshot.

@return [Applitools::Screenshot::Datastream] The screenshot.

# File lib/applitools/selenium/takes_screenshot_image_provider.rb, line 26
def take_screenshot(options = {})
  logger.info 'Getting screenshot...'
  screenshot = driver.screenshot_as(:png) do |raw_screenshot|
    save_debug_screenshot(raw_screenshot, options[:debug_suffix])
  end
  logger.info 'Done getting screenshot! Creating Applitools::Screenshot...'
  Applitools::Screenshot.from_datastream screenshot
end

Private Instance Methods

save_debug_screenshot(screenshot, suffix) click to toggle source
# File lib/applitools/selenium/takes_screenshot_image_provider.rb, line 39
def save_debug_screenshot(screenshot, suffix)
  debug_screenshot_provider.save(screenshot, suffix || '')
end