Динамические xpaths в Appium - PullRequest
       4

Динамические xpaths в Appium

0 голосов
/ 08 января 2019

Попытка автоматизировать тестирование приложения для Android. Однако к элементам не прикреплены идентификаторы, только xpaths. Эти xpaths являются динамическими и могут изменяться в зависимости от размера экрана и расположения элементов на экране.

Я пытался использовать функцию contains (), но в некоторых случаях нет общего знаменателя. Это тоже не самый надежный способ.

Пример:

/ иерархия / android.widget.FrameLayout / android.widget.LinearLayout / android.widget.FrameLayout / android.widget.FrameLayout / android.widget.FrameLayout / android.widget.RelativeLayout / android.view.ViewGroup / Android. support.v4.widget.DrawerLayout / android.view.ViewGroup / android.view.ViewGroup / android.view.ViewGroup / android.view.ViewGroup [2] /android.view.ViewGroup/android.widget.ScrollView/android.view .ViewGroup / android.view.ViewGroup / android.view.ViewGroup [2] /android.view.ViewGroup/android.view.ViewGroup [4]

изменяется на

/ иерархия / android.widget.FrameLayout / android.widget.LinearLayout / android.widget.FrameLayout / android.widget.FrameLayout / android.widget.FrameLayout / android.widget.RelativeLayout / android.view.ViewGroup / Android. support.v4.widget.DrawerLayout / android.view.ViewGroup / android.view.ViewGroup / android.view.ViewGroup / android.view.ViewGroup [2] /android.view.ViewGroup/android.widget.ScrollView/android.view .ViewGroup / android.view.ViewGroup / android.view.ViewGroup / android.view.ViewGroup / android.view.ViewGroup [2]

при прокрутке вниз по экрану.

Что было бы лучшим и наиболее надежным решением? Один и тот же сценарий тестирования должен выполняться на нескольких устройствах с различными размерами экрана.

Даже рекомендуется ли использовать xpaths в Appium или мне следует обратиться к разработчикам и попросить уникальные идентификаторы для каждого элемента?

1 Ответ

0 голосов
/ 09 января 2019

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

Рекомендуется использовать

  • Найти элемент по ID
  • Найти элемент по Идентификатор доступа

Вы можете попросить разработчика добавить уникальный cont-desc в элемент, если вы хотите использовать findElementByAccessibilityId () .

MobileElemet element = driver.findElementByAccessibilityId("your cont-desc id")

или вы можете попросить разработчика добавить уникальный id в элемент, если вы хотите использовать findElementById () .

MobileElemet element = driver.findElementById("element's id")

Вы можете проверить, содержит ли элемент приложения id или cont-desc , используя Appium Desktop Inspector или uiautomatorviewer

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...