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