UIAutomatorViewer показывает тот же идентификатор ресурса

Я занимаюсь автоматизацией Android для приложения с использованием Appium. Каждый день выходит новая сборка приложения, и мне приходится проверять код на наличие новых исправлений с помощью автоматизации. Проблема, с которой я столкнулся, заключается в том, что в текущей новой сборке приложения идентификаторы ресурсов всех кнопок и полей, к которым мне нужно получить доступ при автоматизации, стали одинаковыми. Я мог бы использовать Xpaths для доступа к определенным элементам, но использование Xpath замедлит автоматизацию.

Я использую UIAutomatorViewer для получения идентификаторов Xpath и ресурсов.

Может ли кто-нибудь помочь мне определить, связана ли проблема с тем же идентификатором ресурса, с которой я сталкиваюсь, на стороне Android или мой UIAutomator работает неправильно и показывает тот же идентификатор?

В целях безопасности я не могу поделиться скриншотом.


person Nauman Malik    schedule 19.12.2018    source источник


Ответы (2)


Использование Xpath не рекомендуется. Причина в том, что инфраструктура, используемая для создания XPath, не гарантирует, что XPath останется одним и тем же между двумя разными выполнениями.

Единственное решение, которое я вижу для вашей проблемы, - попросить разработчика добавить уникальный идентификатор автоматизации для каждого элемента. Вы можете попросить их добавить в свой код уникальное cont-desc. Затем вы сможете получить доступ к элементу, используя findByAccessibilityId.

MobileElement element = driver.findElementByAccessibilityId("SomeAccessibilityID");
person Suban Dhyako    schedule 20.12.2018
comment
Спасибо. Я рассмотрю возможность попросить разработчика добавить cont-desc, а затем получить доступ к элементу с помощью findByAccessibilityId. - person Nauman Malik; 20.12.2018

Я прошу своих разработчиков всегда размещать идентификаторы всех элементов на экране для целей автоматизации. Также уточните у разработчиков, если в каком-то случае они не могут этого сделать, тогда в некоторых случаях можно использовать xpath.

person Rajesh Chaudhary    schedule 22.12.2018
comment
Спасибо за ответ, я обязательно попрошу разработчиков добавить идентификаторы ресурсов. - person Nauman Malik; 23.12.2018