module Appium::Android::Uiautomator2::Helper

def complex_find_contains(class_name, value)

Returns:
  • (Element) -

Parameters:
  • value (String) -- the value to search for
  • class_name (String) -- the class name for the element
def complex_find_contains(class_name, value)
  elements = find_elements :uiautomator, string_visible_contains(class_name, value)
  raise _no_such_element if elements.empty?
  elements.first
end

def complex_find_exact(class_name, value)

Returns:
  • (Element) -

Parameters:
  • value (String) -- the value to search for
  • class_name (String) -- the class name for the element
def complex_find_exact(class_name, value)
  elements = find_elements :uiautomator, string_visible_exact(class_name, value)
  raise _no_such_element if elements.empty?
  elements.first
end

def complex_finds_contains(class_name, value)

Returns:
  • (Array) -

Parameters:
  • value (String) -- the value to search for
  • class_name (String) -- the class name for the element
def complex_finds_contains(class_name, value)
  find_elements :uiautomator, string_visible_contains(class_name, value)
end

def complex_finds_exact(class_name, value)

Returns:
  • (Element) -

Parameters:
  • value (String) -- the value to search for
  • class_name (String) -- the class name for the element
def complex_finds_exact(class_name, value)
  find_elements :uiautomator, string_visible_exact(class_name, value)
end

def string_visible_contains(class_name, value)

Returns:
  • (String) -

Parameters:
  • value (String) -- the value to search for
  • class_name (String) -- the class name for the element
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});")
  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});"
end

def string_visible_exact(class_name, value)

Returns:
  • (String) -

Parameters:
  • value (String) -- the value to search for
  • class_name (String) -- the class name for the element

Other tags:
    Private: -
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});")
  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});"
end