class Applitools::Selenium::CssTranslatePositionProvider
Attributes
disable_horizontal[RW]
disable_vertical[RW]
executor[RW]
last_state_position[RW]
max_height[RW]
max_width[RW]
Public Class Methods
new(executor, disable_horizontal = false, disable_vertical = false, max_width = nil, max_height = nil)
click to toggle source
Initialize a class instance.
@param [Applitools::Selenium::Driver] executor The driver instance. @param [Boolean] disable_horizontal
Whether to disable horizontal movement or not. @param [Boolean] disable_vertical
Whether to disable vertical movement or not. @param [Integer] max_width
The max width. @param [Integer] max_height
The max height.
# File lib/applitools/selenium/css_translate_position_provider.rb, line 21 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
Public Instance Methods
current_position()
click to toggle source
# File lib/applitools/selenium/css_translate_position_provider.rb, line 29 def current_position last_state_position end
entire_size(_image_width, _image_height)
click to toggle source
Gets the entire size of the frame.
@return [Applitools::RectangleSize] The entire size of the frame.
# File lib/applitools/selenium/css_translate_position_provider.rb, line 74 def entire_size(_image_width, _image_height) viewport_size = Applitools::Utils::EyesSeleniumUtils.extract_viewport_size(executor) result = Applitools::Utils::EyesSeleniumUtils.current_frame_content_entire_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}" result # return result unless executor.frame_chain.empty? # spp = Applitools::Selenium::ScrollPositionProvider.new(executor) # original_scroll_position = spp.current_position # spp.scroll_to_bottom_right # bottom_right_position = spp.current_position # spp.restore_state(original_scroll_position) # Applitools::RectangleSize.new(bottom_right_position.x + image_width, bottom_right_position.y + image_height) end
force_offset()
click to toggle source
# File lib/applitools/selenium/css_translate_position_provider.rb, line 64 def force_offset Applitools::Location.from_any_attribute last_state_position # Applitools::Location::TOP_LEFT end
position=(value)
click to toggle source
# File lib/applitools/selenium/css_translate_position_provider.rb, line 54 def position=(value) Applitools::ArgumentGuard.not_nil(value, 'value') logger.info "Setting position to: #{value}" Applitools::Utils::EyesSeleniumUtils.translate_to(executor, value) logger.info 'Done!' self.last_state_position = value end
Also aliased as: scroll_to, scroll_to
restore_state(value)
click to toggle source
Restore last state position.
@param [Applitools::Location] value The location.
# File lib/applitools/selenium/css_translate_position_provider.rb, line 40 def restore_state(value) Applitools::Utils::EyesSeleniumUtils.set_current_transforms(executor, 'translate(10px, 0px)') transforms = value.values.compact.map(&:to_s).select { |el| !el.empty? } Applitools::Utils::EyesSeleniumUtils.set_transforms(executor, value) if transforms.empty? self.last_state_position = Applitools::Location::TOP_LEFT else positions = transforms.map { |s| get_position_from_transform(s) } positions.each { |p| raise Applitools::EyesError.new 'Got different css positions!' unless p == positions[0] } self.last_state_position = positions[0] end end
state()
click to toggle source
# File lib/applitools/selenium/css_translate_position_provider.rb, line 33 def state Applitools::Utils::EyesSeleniumUtils.current_transforms(executor) end