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.
Class Method Summary collapse
- .environment_sdk ⇒ Object
- .set_mobile_capabilities(caps, api_key = nil, server_url = nil, proxy = nil) ⇒ Object (also: set_nmg_capabilities)
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
- #use_system_screenshot(value = true) ⇒ Object
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::EyesAppium::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 |
Class Method Details
.environment_sdk ⇒ Object
20 21 22 23 24 25 |
# File 'lib/applitools/appium/eyes.rb', line 20 def self.environment_sdk { name: :eyes_appium, currentVersion: Applitools::EyesAppium::VERSION } end |
.set_mobile_capabilities(caps, api_key = nil, server_url = nil, proxy = nil) ⇒ Object Also known as: set_nmg_capabilities
130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 |
# File 'lib/applitools/appium/eyes.rb', line 130 def self.set_mobile_capabilities(caps, api_key = nil, server_url = nil, proxy = nil) api_key ||= ENV['APPLITOOLS_API_KEY'] raise Applitools::EyesError.new('No API key was given, or is an empty string.') if api_key.to_s.empty? server_url ||= ENV['APPLITOOLS_SERVER_URL'] proxy ||= ENV['APPLITOOLS_HTTP_PROXY'] new_caps = { APPLITOOLS_API_KEY: api_key, APPLITOOLS_SERVER_URL: server_url, APPLITOOLS_PROXY_URL: proxy }.compact # Removes nil values # Ensure `caps` is a hash to avoid NoMethodError for []= on nil caps ||= {} caps[:optionalIntentArguments] = "--es APPLITOOLS '#{new_caps.to_json}'" caps[:processArguments] = { args: [], env: new_caps.merge(DYLD_INSERT_LIBRARIES: "@executable_path/Frameworks/UFG_lib.xcframework/ios-arm64/UFG_lib.framework/UFG_lib:@executable_path/Frameworks/UFG_lib.xcframework/ios-arm64_x86_64-simulator/UFG_lib.framework/UFG_lib") } end |
Instance Method Details
#capture_screenshot ⇒ Object
79 80 81 82 83 84 85 86 87 |
# File 'lib/applitools/appium/eyes.rb', line 79 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
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/applitools/appium/eyes.rb', line 29 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] # target.fully(false) if target.options[:stitch_content].nil? return universal_check(name, target) return check_native(name, target) if native_app? super end |
#check_native(name, target) ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/applitools/appium/eyes.rb', line 56 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
124 125 126 127 128 |
# File 'lib/applitools/appium/eyes.rb', line 124 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
117 118 119 120 121 122 |
# File 'lib/applitools/appium/eyes.rb', line 117 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
113 114 115 |
# File 'lib/applitools/appium/eyes.rb', line 113 def dom_data {} end |
#get_app_output_with_screenshot(*args) ⇒ Object
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/applitools/appium/eyes.rb', line 89 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
74 75 76 77 |
# File 'lib/applitools/appium/eyes.rb', line 74 def native_app? return true if driver.current_context == 'NATIVE_APP' false end |
#use_system_screenshot(value = true) ⇒ Object
157 158 159 160 |
# File 'lib/applitools/appium/eyes.rb', line 157 def use_system_screenshot(value = true) self.screenshot_mode = !value ? 'applitools-lib' : 'default' self end |