123456789_123456789_123456789_123456789_123456789_

Module: Selenium::WebDriver::TakesScreenshot Private

Do not use. This module is for internal use only.
Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Included In:
Defined in: rb/lib/selenium/webdriver/common/takes_screenshot.rb

Instance Method Summary

Instance Method Details

#save_screenshot(png_path, full_page: false)

Save a PNG screenshot of the viewport to the given path

[ GitHub ]

  
# File 'rb/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) ⇒ Object

Return a PNG screenshot in the given format as a string

Parameters:

  • format (:base64, :png)
  • full_page (Boolean)

    allows taking full page screenshots if supported

Returns:

  • String screenshot

[ GitHub ]

  
# File 'rb/lib/selenium/webdriver/common/takes_screenshot.rb', line 51

def screenshot_as(format, full_page: false)
  if full_page && !respond_to?(:save_full_page_screenshot)
    raise Error::UnsupportedOperationError, "Full Page Screenshots are not supported for #{inspect}"
  end

  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
end