class Applitools::Selenium::FullpageScreenshot

Public Instance Methods

sub_screenshot(region, _coordinate_type, throw_if_clipped = false, force_nil_if_clipped = false) click to toggle source
# File lib/applitools/selenium/fullpage_screenshot.rb, line 5
def sub_screenshot(region, _coordinate_type, throw_if_clipped = false, force_nil_if_clipped = false)
  logger.info "get_subscreenshot(#{region}, #{throw_if_clipped})"
  Applitools::ArgumentGuard.not_nil region, 'region'

  as_is_subscreenshot_region = region.intersect(image_region)

  if as_is_subscreenshot_region.empty? || (throw_if_clipped && as_is_subscreenshot_region.size != region.size)
    return nil if force_nil_if_clipped
    raise Applitools::OutOfBoundsException.new "Region #{region} is out" \
      ' of screenshot bounds'
  end

  sub_screenshot_image = Applitools::Screenshot.from_image(
    image.crop(
      as_is_subscreenshot_region.left,
      as_is_subscreenshot_region.top,
      as_is_subscreenshot_region.width,
      as_is_subscreenshot_region.height
    )
  )

  result = self.class.new(sub_screenshot_image, region_provider: region_provider).tap do |s|
    s.top_left_location = top_left_location.dup.offset(region.location)
  end
  logger.info 'Done!'
  result
end
top_left_location() click to toggle source
# File lib/applitools/selenium/fullpage_screenshot.rb, line 33
def top_left_location
  @top_left_location ||= Applitools::Location::TOP_LEFT
end