Поиск локаторов в iOS через Appium или как еще?

Всем привет.

Нормальных идентификаторов нет, поэтому ищу элементы через xpath. Но то, что мне предлаает инспектор не всегда подходит. Например есть атрибут name, но по факту все имя не влазиет и имя сокращается и добавляется “…”. И когда я беру локатор вот так:

    def get_team_name_locator(self, name):
        return f"//XCUIElementTypeButton[@name='{name}']"

У меня возникают проблемы при ассертах, т.к. имя не равно тому, которое отображается по факту.
Подскажите, пожалуйста как взять полный xpath путь к элементу в appium инспекторе? А то он показывает наиболее удачный локатор, но он мне не подходит. Не писать же руками этот длиннючий лоатор самому. Может еще какие-то инструметы есть?


Я понимаю ,что такие локаторы использовать нельзя, н пока не введут идентификаторы мне без них никуда.

Не используйте xPath, ваши тесты будут ооочень медленными.
Если нет возможности работать с нормальными id то лучше использовать:

  1. IOSclassChain он похож синтаксисом на xpath
  2. IOSNsPredicate

Оба эти варианта по скорости сравнимы с id.
Также пробуйте договариваться с разрабами чтобы давали id элементам.

3 лайка

Спасибо. Пообщался с разработчиками на эту тему. Обещали сделать.

Скажите, а как использовать ожидания WebDriverWait когда мы используем локаторы для мобильных устройств? Все точно так же?

Да, все точно также, например

    WebDriverWait wait = new WebDriverWait(driver, sec);
     wait.until(ExpectedConditions.elementToBeClickable(someElement));
1 лайк