class Applitools::Selenium::ViewportScreenshot
@!visibility private
Attributes
top_left_location[RW]
Public Instance Methods
screenshot_offset()
click to toggle source
# File lib/applitools/selenium/viewport_screenshot.rb, line 34 def screenshot_offset offset = Applitools::Location::TOP_LEFT.dup offset.offset region_provider.scroll_position_provider.current_position frame_window = region_provider.calculate_frame_window offset.offset_negative(frame_window.location) offset end
sub_screenshot(region, _coordinate_type, throw_if_clipped = false, force_nil_if_clipped = false)
click to toggle source
# File lib/applitools/selenium/viewport_screenshot.rb, line 8 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 cropped_image = Applitools::Screenshot.from_image( image.crop( as_is_subscreenshot_region.x, as_is_subscreenshot_region.y, as_is_subscreenshot_region.width, as_is_subscreenshot_region.height ) ) self.class.new(cropped_image, region_provider: region_provider).tap do |s| s.top_left_location = top_left_location.dup.offset(region.location) end end