class Applitools::Selenium::ScrollPositionProvider
@!visibility private
Attributes
Public Class Methods
Source
# File lib/applitools/selenium/scroll_position_provider.rb, line 15 def initialize(executor, disable_horizontal = false, disable_vertical = false, max_width = nil, max_height = nil) self.executor = executor self.disable_horizontal = disable_horizontal self.disable_vertical = disable_vertical self.max_width = max_width self.max_height = max_height end
Creates a new Applitools::Selenium::ScrollPositionProvider
instance.
@param [Applitools::Selenium::Driver] executor The instance that of the driver. @param [Boolean] disable_horizontal
Whether to disable horizontal movement or not. @param [Boolean] disable_vertical
Whether to disable vertical movement or not.
Public Instance Methods
Source
# File lib/applitools/selenium/scroll_position_provider.rb, line 26 def current_position logger.info 'current_position()' result = Applitools::Utils::EyesSeleniumUtils.current_scroll_position(executor) logger.info "Current position: #{result}" result rescue Applitools::EyesDriverOperationException raise 'Failed to extract current scroll position!' end
The scroll position of the current frame.
@return [Applitools::Location] The current position of the ScrollPositionProvider
.
Source
# File lib/applitools/selenium/scroll_position_provider.rb, line 54 def entire_size(image_width, image_height) viewport_size = Applitools::Utils::EyesSeleniumUtils.extract_viewport_size(executor) result = Applitools::Utils::EyesSeleniumUtils.entire_page_size(executor) logger.info "Entire size: #{result}" result.width = max_width unless max_width.nil? result.height = max_height unless max_height.nil? result.width = [viewport_size.width, result.width].min if disable_horizontal result.height = [viewport_size.height, result.height].min if disable_vertical logger.info "Actual size to scroll: #{result}" return result unless executor.frame_chain.empty? original_scroll_position = current_position scroll_to_bottom_right bottom_right_position = current_position restore_state(original_scroll_position) Applitools::RectangleSize.new(bottom_right_position.x + image_width, bottom_right_position.y + image_height) end
Returns the entire size of the viewport.
@return [Applitools::RectangleSize] The viewport size.
Source
# File lib/applitools/selenium/scroll_position_provider.rb, line 77 def force_offset Applitools::Location.new(0, 0) end
Source
# File lib/applitools/selenium/scroll_position_provider.rb, line 43 def position=(value) logger.info "Scrolling to #{value}" Applitools::Utils::EyesSeleniumUtils.scroll_to(executor, value) logger.info 'Done scrolling!' end
Also aliased as: scroll_to
Source
# File lib/applitools/selenium/scroll_position_provider.rb, line 39 def restore_state(value) self.position = value end
Source
# File lib/applitools/selenium/scroll_position_provider.rb, line 73 def scroll_to_bottom_right Applitools::Utils::EyesSeleniumUtils.scroll_to_bottom_right(executor) end
Source
# File lib/applitools/selenium/scroll_position_provider.rb, line 35 def state current_position end