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