class Applitools::Appium::Eyes
Attributes
eyes_element_to_check[RW]
region_provider[RW]
status_bar_height[RW]
Public Class Methods
new(*args)
click to toggle source
Calls superclass method
# File lib/applitools/appium/eyes.rb, line 11 def initialize(*args) super self.dont_get_title = true self.runner = Applitools::ClassicRunner.new unless runner self.base_agent_id = "eyes.appium.ruby/#{Applitools::VERSION}".freeze self.status_bar_height = 0 self.utils = Applitools::Appium::Utils end
Public Instance Methods
capture_screenshot()
click to toggle source
# File lib/applitools/appium/eyes.rb, line 69 def capture_screenshot logger.info 'Getting screenshot (capture_screenshot() has been invoked)' case eyes_element_to_check when Applitools::Region viewport_screenshot when Selenium::WebDriver::Element, Applitools::Selenium::Element element_screenshot end end
check(*args)
click to toggle source
Calls superclass method
# File lib/applitools/appium/eyes.rb, line 22 def check(*args) args.compact! case (first_arg = args.shift) when String name = first_arg target = args.shift when Applitools::Selenium::Target target = first_arg when Hash target = first_arg[:target] name = first_arg[:name] || first_arg[:tag] end logger.info "check(#{name}) is called" self.tag_for_debug = name Applitools::ArgumentGuard.one_of? target, 'target', [Applitools::Selenium::Target, Applitools::Appium::Target] return check_native(name, target) if native_app? super end
check_native(name, target)
click to toggle source
# File lib/applitools/appium/eyes.rb, line 46 def check_native(name, target) logger.info "check_native(#{name}) is called" update_scaling_params target_to_check = target.finalize match_data = Applitools::MatchWindowData.new(default_match_settings) match_data.tag = name timeout = target_to_check.options[:timeout] || USE_DEFAULT_MATCH_TIMEOUT eyes_element = target_to_check.region_to_check.call(driver) self.eyes_element_to_check = eyes_element region_provider = region_provider_class.new(driver, eyes_element) match_data.read_target(target_to_check, driver) check_window_base( region_provider, timeout, match_data ) end
check_region(*args)
click to toggle source
# File lib/applitools/appium/eyes.rb, line 114 def check_region(*args) options = { timeout: USE_DEFAULT_MATCH_TIMEOUT, tag: nil }.merge! Applitools::Utils.extract_options!(args) target = Applitools::Appium::Target.new.region(*args).timeout(options[:match_timeout]) check(options[:tag], target) end
check_window(tag = nil, match_timeout = USE_DEFAULT_MATCH_TIMEOUT)
click to toggle source
# File lib/applitools/appium/eyes.rb, line 107 def check_window(tag = nil, match_timeout = USE_DEFAULT_MATCH_TIMEOUT) target = Applitools::Appium::Target.window.tap do |t| t.timeout(match_timeout) end check(tag, target) end
dom_data()
click to toggle source
# File lib/applitools/appium/eyes.rb, line 103 def dom_data {} end
get_app_output_with_screenshot(*args)
click to toggle source
Calls superclass method
# File lib/applitools/appium/eyes.rb, line 79 def get_app_output_with_screenshot(*args) result = super do |screenshot| if scale_provider scaled_image = scale_provider.scale_image(screenshot.image) self.screenshot = screenshot_class.new( Applitools::Screenshot.from_image( case scaled_image when ChunkyPNG::Image scaled_image when Applitools::Screenshot::Datastream scaled_image.image else raise Applitools::EyesError.new('Unknown image format after scale!') end ), status_bar_height: self.utils.status_bar_height(driver), device_pixel_ratio: self.utils.device_pixel_ratio(driver) ) end end self.screenshot_url = nil result end
native_app?()
click to toggle source
# File lib/applitools/appium/eyes.rb, line 64 def native_app? return true if driver.current_context == 'NATIVE_APP' false end
Private Instance Methods
element_screenshot()
click to toggle source
# File lib/applitools/appium/eyes.rb, line 127 def element_screenshot logger.info 'Element screenshot requested...' obtain_viewport_screenshot end
obtain_viewport_screenshot()
click to toggle source
# File lib/applitools/appium/eyes.rb, line 132 def obtain_viewport_screenshot self.screenshot = screenshot_class.new( Applitools::Screenshot.from_datastream(driver.screenshot_as(:png)), status_bar_height: self.utils.status_bar_height(driver), device_pixel_ratio: self.utils.device_pixel_ratio(driver) ) end
perform_driver_settings_for_appium_driver()
click to toggle source
# File lib/applitools/appium/eyes.rb, line 6 def perform_driver_settings_for_appium_driver self.region_visibility_strategy = Applitools::Selenium::NopRegionVisibilityStrategy.new self.force_driver_resolution_as_viewport_size = true end
region_provider_class()
click to toggle source
# File lib/applitools/appium/eyes.rb, line 146 def region_provider_class return Applitools::Appium::IosRegionProvider if self.utils.ios?(Applitools::Appium::Driver::AppiumLib) return Applitools::Appium::AndroidRegionProvider if self.utils.android?(Applitools::Appium::Driver::AppiumLib) raise Applitools::EyesError, 'Unknown device type' end
screenshot_class()
click to toggle source
# File lib/applitools/appium/eyes.rb, line 140 def screenshot_class return Applitools::Appium::IosScreenshot if self.utils.ios?(Applitools::Appium::Driver::AppiumLib) return Applitools::Appium::AndroidScreenshot if self.utils.android?(Applitools::Appium::Driver::AppiumLib) raise Applitools::EyesError, 'Unknown device type' end
viewport_screenshot()
click to toggle source
# File lib/applitools/appium/eyes.rb, line 122 def viewport_screenshot logger.info 'Viewport screenshot requested...' obtain_viewport_screenshot end