module Appium::Ios
def get_page element=source_window(0)
-
(String)
-
Parameters:
-
element
(Object
) -- the element to search. omit to search everything
def get_page element=source_window(0) lazy_load_strings # @private def empty ele (ele['name'] || ele['label'] || ele['value']) == nil end # @private def fix_space s # ints don't respond to force encoding return s unless s.respond_to? :force_encoding # char code 160 (name, label) vs 32 (value) will break comparison. # convert string to binary and remove 160. # \xC2\xA0 s.force_encoding('binary').gsub("\xC2\xA0".force_encoding('binary'), ' ') if s end unless empty(element) puts "#{element['type']}" name = fix_space element['name'] label = fix_space element['label'] value = fix_space element['value'] if name == label && name == value puts " name, label, value: #{name}" if name elsif name == label puts " name, label: #{name}" if name puts " value: #{value}" if value elsif name == value puts " name, value: #{name}" if name puts " label: #{label}" if label else puts " name: #{name}" if name puts " label: #{label}" if label puts " value: #{value}" if value end # there may be many ids with the same value. # output all exact matches. id_matches = @strings_xml.select do |key, val| val == name || val == label || val == value end if id_matches && id_matches.length > 0 match_str = '' # [0] = key, [1] = value id_matches.each do |match| match_str += ' ' * 7 + "#{match[0]}\n" end puts " id: #{match_str.strip}\n" end end children = element['children'] children.each { |c| get_page c } if children nil end