class Applitools::Selenium::RegionProvider
Constants
- FF_OLD_VERSION
Attributes
Public Class Methods
Source
# File lib/applitools/selenium/region_provider.rb, line 10 def initialize(driver, eye_region) self.driver = driver self.eye_region = eye_region self.scroll_position_provider = Applitools::Selenium::ScrollPositionProvider.new driver end
Public Instance Methods
Source
# File lib/applitools/selenium/region_provider.rb, line 46 def calculate_frame_window return Applitools::Region::EMPTY unless inside_a_frame? frame_window_calculator.frame_window(driver.frame_chain) end
Source
# File lib/applitools/selenium/region_provider.rb, line 42 def coordinate_type nil end
Source
# File lib/applitools/selenium/region_provider.rb, line 16 def region(include_borders = true) region = if include_borders location = eye_region.location.offset_negative( Applitools::Location.new(eye_region.padding_left, eye_region.padding_top) ) size = eye_region.size.tap do |s| s.width += eye_region.padding_left + eye_region.padding_right s.height += eye_region.padding_top + eye_region.padding_bottom end Applitools::Region.from_location_size(location, size) else Applitools::Region.from_location_size(eye_region.location, eye_region.size) end if inside_a_frame? frame_window = calculate_frame_window return frame_window if eye_region.is_a?(Applitools::Region) && eye_region.empty? region.location = region.location.offset(frame_window.location) region.intersect(frame_window) unless frame_window.empty? # exception if empty else region.location = region.location.offset_negative scroll_position_provider.current_position end return eye_region if eye_region.is_a?(Applitools::Region) && eye_region.empty? region end
Private Instance Methods
Source
# File lib/applitools/selenium/region_provider.rb, line 57 def frame_window_calculator return FirefoxFrameWindowCalculator if driver.browser.running_browser_name == :firefox && (Gem::Version.new(driver.capabilities.version) <=> Gem::Version.new(FF_OLD_VERSION)) > 0 FrameWindowCalculator end
Source
# File lib/applitools/selenium/region_provider.rb, line 53 def inside_a_frame? !driver.frame_chain.empty? end