Встроенная автоматическая навигация для тестирования мобильных приложений Android с несколькими элементами класса

#android #python #automation #appium #android-uiautomator

#Android #python #автоматизация #аппиум #android-uiautomator

Вопрос:

введите описание изображения здесь

Как вы вводите текст (пароль), когда нет text , resource-id , content-desc и существует более одного класса? т. е. Имя класса для username также android.widget.EditText . Я пробовал xpath или UISelector следующим образом, но это не работает:

 driver.find_element_by_xpath("//android.widget.EditText[@text='']").send_keys("xxxx")

driver.find_element_by_android_uiautomator("new UiSelector().text('')")
 

Ответ №1:

Вы пробовали искать по имени класса? Вы можете попробовать следующее:

 element = driver.find_element_by_class_name('android.widget.EditText')
 

Если у вас есть более одного элемента с похожим классом, найдите их все:

 elements = driver.find_elements_by_class_name('android.widget.EditText')
 

И тогда у вас есть 2 варианта.:

  1. Вы можете перебрать найденные элементы и проверить , можете ли вы получить какой — то осмысленный текст из каждого из них , вызвав element.text его . Это как попытка найти, какой элемент может возвращать что-то, связанное с паролем.
  2. Если нет способа достоверно определить, какой из элементов является тем, который вам нужен, вам придется просто выбрать предопределенный элемент из списка. Например: passField = elements[0] .