lib/appium_lib/android/common/helper.rb in appium_lib-9.15.1 vs lib/appium_lib/android/common/helper.rb in appium_lib-9.15.2

- old
+ new

@@ -6,11 +6,12 @@ attr_reader :result, :keys, :filter # convert to string to support symbols def filter=(value) # nil and false disable the filter - return @filter = false unless value + return @filter = false unless value # rubocop:disable Lint/ReturnInVoidContext + @filter = value.to_s.downcase end def initialize reset @@ -134,10 +135,11 @@ if index == 'last()' index = results.length index -= 1 if index >= 0 else raise 'Index must be >= 1' unless index >= 1 + index -= 1 if index >= 1 end # uiautomator has issues with index/instance so calculate the index # client side. @@ -216,11 +218,11 @@ def string_visible_contains_xpath(class_name, value) r_id = resource_id(value, " or @resource-id='#{value}'") if class_name == '*' return "//*[contains(translate(@text,'#{value.upcase}', '#{value}'), '#{value}')" \ - " or contains(translate(@content-desc,'#{value.upcase}', '#{value}'), '#{value}')" + r_id + ']' + " or contains(translate(@content-desc,'#{value.upcase}', '#{value}'), '#{value}')" + r_id + ']' end "//#{class_name}[contains(translate(@text,'#{value.upcase}', '#{value}'), '#{value}')" \ " or contains(translate(@content-desc,'#{value.upcase}', '#{value}'), '#{value}')" + r_id + ']' end @@ -235,18 +237,18 @@ # @return [String] def string_visible_contains(class_name, value) value = %("#{value}") if class_name == '*' return (resource_id(value, "new UiSelector().resourceId(#{value});") + - "new UiSelector().descriptionContains(#{value});" \ - "new UiSelector().textContains(#{value});") + "new UiSelector().descriptionContains(#{value});" \ + "new UiSelector().textContains(#{value});") end class_name = %("#{class_name}") resource_id(value, "new UiSelector().className(#{class_name}).resourceId(#{value});") + - "new UiSelector().className(#{class_name}).descriptionContains(#{value});" \ - "new UiSelector().className(#{class_name}).textContains(#{value});" + "new UiSelector().className(#{class_name}).descriptionContains(#{value});" \ + "new UiSelector().className(#{class_name}).textContains(#{value});" end # Find the first element that contains value # @param class_name [String] the class name for the element # @param value [String] the value to search for @@ -270,13 +272,11 @@ # @param value [String] the value to search for # @return [String] def string_visible_exact_xpath(class_name, value) r_id = resource_id(value, " or @resource-id='#{value}'") - if class_name == '*' - return "//*[@text='#{value}' or @content-desc='#{value}'" + r_id + ']' - end + return "//*[@text='#{value}' or @content-desc='#{value}'" + r_id + ']' if class_name == '*' "//#{class_name}[@text='#{value}' or @content-desc='#{value}'" + r_id + ']' end # @private @@ -287,17 +287,17 @@ def string_visible_exact(class_name, value) value = %("#{value}") if class_name == '*' return (resource_id(value, "new UiSelector().resourceId(#{value});") + - "new UiSelector().description(#{value});" \ - "new UiSelector().text(#{value});") + "new UiSelector().description(#{value});" \ + "new UiSelector().text(#{value});") end class_name = %("#{class_name}") resource_id(value, "new UiSelector().className(#{class_name}).resourceId(#{value});") + - "new UiSelector().className(#{class_name}).description(#{value});" \ - "new UiSelector().className(#{class_name}).text(#{value});" + "new UiSelector().className(#{class_name}).description(#{value});" \ + "new UiSelector().className(#{class_name}).text(#{value});" end # Find the first element exactly matching value # @param class_name [String] the class name for the element # @param value [String] the value to search for