class Applitools::Appium::Target
Attributes
accessibility_regions[RW]
content_regions[RW]
floating_regions[RW]
ignored_regions[RW]
layout_regions[RW]
options[RW]
region_to_check[RW]
strict_regions[RW]
Public Class Methods
new()
click to toggle source
# File lib/applitools/appium/target.rb, line 19 def initialize self.region_to_check = proc { Applitools::Region::EMPTY } self.ignored_regions = [] self.floating_regions = [] self.layout_regions = [] self.content_regions = [] self.strict_regions = [] self.accessibility_regions = [] self.options = {} end
region(*args)
click to toggle source
# File lib/applitools/appium/target.rb, line 14 def region(*args) new.region(*args) end
window()
click to toggle source
# File lib/applitools/appium/target.rb, line 10 def window new end
Public Instance Methods
accessibility(*args)
click to toggle source
# File lib/applitools/appium/target.rb, line 128 def accessibility(*args) options = Applitools::Utils.extract_options! args unless options[:type] raise Applitools::EyesError, 'You should call Target.accessibility(region, type: type). The region_type option is required' end unless Applitools::AccessibilityRegionType.enum_values.include?(options[:type]) raise Applitools::EyesIllegalArgument, "The region type should be one of [#{Applitools::AccessibilityRegionType.enum_values.join(', ')}]" end accessibility_regions << case args.first when ::Selenium::WebDriver::Element element = args.first Applitools::AccessibilityRegion.new( element, options[:type] ) when Applitools::Region result = Applitools::AccessibilityRegion.new( args.first, options[:type] ) if Applitools::Appium::Utils.ios?(Applitools::Appium::Driver::AppiumLib) def result.converted? true end end result when String proc do |driver| element = driver.find_element(name_or_id: args.first) Applitools::AccessibilityRegion.new( element, options[:type] ) end else proc do |driver| elements = driver.find_elements(*args) elements.map do |e| Applitools::AccessibilityRegion.new( e, options[:type] ) end end end self end
content(*args)
click to toggle source
# File lib/applitools/appium/target.rb, line 110 def content(*args) return match_level(Applitools::MatchLevel::CONTENT) if args.empty? region = process_region(*args) content_regions << region self end
exact(*args)
click to toggle source
# File lib/applitools/appium/target.rb, line 124 def exact(*args) match_level(Applitools::MatchLevel::EXACT, *args) end
finalize()
click to toggle source
# File lib/applitools/appium/target.rb, line 178 def finalize self end
floating(*args)
click to toggle source
# File lib/applitools/appium/target.rb, line 74 def floating(*args) value = case args.first when Applitools::FloatingRegion args.first when Applitools::Region result = Applitools::FloatingRegion.any(*args) if Applitools::Appium::Utils.ios?(Applitools::Appium::Driver::AppiumLib) def result.converted? true end end result when ::Selenium::WebDriver::Element args_dup = args.dup Applitools::FloatingRegion.any(*args_dup) else proc do |driver| args_dup = args.dup region = driver.find_element(args_dup.shift, args_dup.shift) Applitools::FloatingRegion.any( region, *args_dup ) end end floating_regions << value self end
ignore(*args)
click to toggle source
# File lib/applitools/appium/target.rb, line 42 def ignore(*args) requested_padding = if args.last.is_a? Applitools::PaddingBounds args.pop else Applitools::PaddingBounds::ZERO_PADDING end ignored_regions << case (first_argument = args.first) when ::Selenium::WebDriver::Element proc do Applitools::Region .from_location_size(first_argument.location, first_argument.size) .padding(requested_padding) end when Applitools::Region result = first_argument.padding(requested_padding) if Applitools::Appium::Utils.ios?(Applitools::Appium::Driver::AppiumLib) def result.converted? true end end result else proc do |driver| element = driver.find_element(*args) Applitools::Region .from_location_size(element.location, element.size) .padding(requested_padding) end end self end
layout()
click to toggle source
# File lib/applitools/appium/target.rb, line 102 def layout return match_level(Applitools::MatchLevel::LAYOUT) if args.empty? region = process_region(*args) layout_regions << region self end
region(*args)
click to toggle source
# File lib/applitools/appium/target.rb, line 30 def region(*args) self.region_to_check = case args.first when ::Selenium::WebDriver::Element proc { args.first } else proc do |driver| driver.find_element(*args) end end self end
strict(*args)
click to toggle source
# File lib/applitools/appium/target.rb, line 117 def strict(*args) return match_level(Applitools::MatchLevel::STRICT) if args.empty? region = process_region(*args) strict_regions << region self end
Private Instance Methods
process_region(*args)
click to toggle source
# File lib/applitools/appium/target.rb, line 184 def process_region(*args) r = args.first case r when ::Selenium::WebDriver::Element proc do |driver| Applitools::Region.from_location_size(r.location, r.size) end when Applitools::Region if Applitools::Appium::Utils.ios?(Applitools::Appium::Driver::AppiumLib) def r.converted? true end end r else proc do |driver| element = driver.find_element(*args) Applitools::Region.from_location_size(element.location, element.size) end end end