module Selenium::WebDriver::TakesScreenshot

@api private

Public Instance Methods

save_screenshot(png_path, full_page: false) click to toggle source

Save a PNG screenshot of the viewport to the given path

@api public

# File lib/selenium/webdriver/common/takes_screenshot.rb, line 32
def save_screenshot(png_path, full_page: false)
  extension = File.extname(png_path).downcase
  if extension != '.png'
    WebDriver.logger.warn "name used for saved screenshot does not match file type. "\
                          "It should end with .png extension",
                          id: :screenshot
  end
  File.open(png_path, 'wb') { |f| f << screenshot_as(:png, full_page: full_page) }
end
screenshot_as(format, full_page: false) click to toggle source

Return a PNG screenshot in the given format as a string

@param [:base64, :png] format @param [Boolean] full_page allows taking full page screenshots if supported @return String screenshot

@api public

# File lib/selenium/webdriver/common/takes_screenshot.rb, line 51
def screenshot_as(format, full_page: false)
  case format
  when :base64
    full_page ? full_screenshot : screenshot
  when :png
    screenshot_as(:base64, full_page: full_page).unpack1('m')
  else
    raise Error::UnsupportedOperationError, "unsupported format: #{format.inspect}"
  end
rescue NameError
  raise Error::UnsupportedOperationError, "Full Page Screenshots are not supported for #{inspect}"
end