Class: Applitools::Appium::Eyes
- Inherits:
-
Selenium::SeleniumEyes
- Object
- Selenium::SeleniumEyes
- Applitools::Appium::Eyes
- Defined in:
- lib/applitools/appium/eyes.rb
Instance Attribute Summary collapse
-
#status_bar_height ⇒ Object
Returns the value of attribute status_bar_height.
Instance Method Summary collapse
- #capture_screenshot ⇒ Object
- #check(*args) ⇒ Object
- #check_native(name, target) ⇒ Object
- #check_region(*args) ⇒ Object
- #check_window(tag = nil, match_timeout = USE_DEFAULT_MATCH_TIMEOUT) ⇒ Object
- #dom_data ⇒ Object
- #get_app_output_with_screenshot(*args) ⇒ Object
-
#initialize(*args) ⇒ Eyes
constructor
A new instance of Eyes.
- #native_app? ⇒ Boolean
Constructor Details
#initialize(*args) ⇒ Eyes
Returns a new instance of Eyes.
11 12 13 14 15 16 17 18 |
# 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. = 0 self.utils = Applitools::Appium::Utils end |
Instance Attribute Details
#status_bar_height ⇒ Object
Returns the value of attribute status_bar_height.
4 5 6 |
# File 'lib/applitools/appium/eyes.rb', line 4 def @status_bar_height end |
Instance Method Details
#capture_screenshot ⇒ Object
70 71 72 73 74 75 76 77 78 |
# File 'lib/applitools/appium/eyes.rb', line 70 def capture_screenshot logger.info 'Getting screenshot (capture_screenshot() has been invoked)' case eyes_element_to_check when Applitools::Region when Selenium::WebDriver::Element, Applitools::Selenium::Element element_screenshot end end |
#check(*args) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# 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 universal_check(name, target) return check_native(name, target) if native_app? super end |
#check_native(name, target) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/applitools/appium/eyes.rb', line 47 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.[: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) ⇒ Object
115 116 117 118 119 |
# File 'lib/applitools/appium/eyes.rb', line 115 def check_region(*args) = { timeout: USE_DEFAULT_MATCH_TIMEOUT, tag: nil }.merge! Applitools::Utils.(args) target = Applitools::Appium::Target.new.region(*args).timeout([:match_timeout]) check([:tag], target) end |
#check_window(tag = nil, match_timeout = USE_DEFAULT_MATCH_TIMEOUT) ⇒ Object
108 109 110 111 112 113 |
# File 'lib/applitools/appium/eyes.rb', line 108 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 ⇒ Object
104 105 106 |
# File 'lib/applitools/appium/eyes.rb', line 104 def dom_data {} end |
#get_app_output_with_screenshot(*args) ⇒ Object
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'lib/applitools/appium/eyes.rb', line 80 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.(driver), device_pixel_ratio: self.utils.device_pixel_ratio(driver) ) end end self.screenshot_url = nil result end |
#native_app? ⇒ Boolean
65 66 67 68 |
# File 'lib/applitools/appium/eyes.rb', line 65 def native_app? return true if driver.current_context == 'NATIVE_APP' false end |