class Applitools::Selenium::RegionProvider
Constants
- FF_OLD_VERSION
Attributes
driver[RW]
eye_region[RW]
scroll_position_provider[RW]
Public Class Methods
new(driver, eye_region)
click to toggle 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
calculate_frame_window()
click to toggle 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
coordinate_type()
click to toggle source
# File lib/applitools/selenium/region_provider.rb, line 42 def coordinate_type nil end
region(include_borders = true)
click to toggle 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
frame_window_calculator()
click to toggle 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
inside_a_frame?()
click to toggle source
# File lib/applitools/selenium/region_provider.rb, line 53 def inside_a_frame? !driver.frame_chain.empty? end