Документация
ОС Аврора 5.2.0

Работа с Appium Inspector

UI Приложений на ОС Аврора построен с помощью QML страниц. Для просмотра структуры страниц с новыми версиями Appium можно использовать Appium Inspector.

Предварительные условия

Для успешной работы с Appium Inspector требуется, чтобы на устройстве был установлен и активирован qtium-driver (через соответствующий пункт меню Режима разработчика в Настройках).

Установка и запуск

В данном руководстве рассматривается работа Appium Inspector на примере ОС Ubuntu 24.04.1.

При работе с другими операционными системами процесс установки и запуска необходимо адаптировать в соответствии с их особенностями.

  1. Скачать подходящий релиз формата AppImage (версии <2025.7.3):

    wget https://github.com/appium/appium-inspector/releases/download/v2025.7.3/Appium-Inspector-2025.7.3-linux-x86_64.AppImage
    
  2. Выдать разрешение на запуск:

    chmod +x Appium-Inspector-2025.7.3-linux-x86_64.AppImage
    
  3. Запустить Appium Inspector:

    ./Appium-Inspector-2025.7.3-linux-x86_64.AppImage
    

Панель управления

  1. Для начала работы с утилитой в поле Remote Host необходимо задать IP адрес контейнера appium (например, 127.0.0.1), в поле Remote Port задать порт контейнера Appium (по умолчанию — 4723):

    Панель управления (с заполнеными Remote Host и Remote Port)

  2. Далее необходимо заполнить поля на вкладке Capability Builder. В полях необходимо указать правильные capabilities, аналогично созданию обьекта драйвера в автотестах.

    Для упрощения заполнения можно использовать JSON Representation. Для этого необходимо нажать на кнопку Edit Raw JSON:

    Capability Builder (Кнопка Edit Raw JSON)

    И затем вставить в текстовое поле JSON аналогичную конфигурацию:

    {
        "automationName": "Aurora",
        "platformName": "Aurora",
        "platformVersion": "2.2",
        "newCommandTimeout": 86400,
        "appPackage": "ru.auroraos.ApplicationTemplate",
        "deviceName": "192.168.2.15",
        "autoLaunch": false,
        "appiumInspector": true
    }
    

    При необходимости можно изменить значение поля appPackage на имя желаемого приложения и значение поля deviceName на IP адрес устройства с запущенным qtium-driver.

  3. Сохранить конфигурацию, нажав кнопку Save:

    Capability Builder (Заполненный JSON)

  4. После сохранения конфигурации можно установить соединение с приложением, нажав кнопку Start Session в нижнем правом углу:

    Capability Builder (Сохраненный JSON)

    После успешной установки соединения с приложением появится интерфейс работы с ним, включающий различный функционал:

    Панель управления (после соединения)

Структура страницы

Ниже приведены различные представления структуры одной и той же страницы.

  • Представление страницы в QML коде:

    Страница_QML

  • UI представление страницы:

    Страница_UI

  • Представление страницы в Appium Inspector:

    Страница_tree

    По нажатию ЛКМ на конкретном UI элементе откроется окно с его свойствами:

    Свойства элемента

Работа с UI элементами

Для работы с определенным UI элементом необходимо его выделить из списка других в дереве страницы, используя отличие в его атрибутах от других элементов.

Appium Inspector позволяет осуществлять поиск элементов по следующим атрибутам:

  • ID;
  • XPath;
  • СlassName.

Чтобы осуществить поиск по атрибуту, необходимо:

  1. Нажать на кнопку Search for element на верхней панели Appium Inspector:

    Панель управления (поиск)

    При нажатии на неё откроется окно для поиска:

    Окно поиска

  2. Выбрать нужный атрибут из списка выше для поиска, затем заполнить поле Selector соответствующим значением. Например, для атрибута XPath поле Selector можно заполнить значением//PageStack. При нажатии на кнопку поиска Search появляются элементы, подходящие под атрибуты поиска:

    Найденные элементы

В дальнейшем при использовании селектора можно быть уверенным, что qtium-driver будет взаимодействовать именно с найденным элементом.

Поиск по ID

С помощью данного способа можно найти элемент по свойству objectName у обьектов. Это самый однозначный, оптимизированный и быстрый способ найти нужный элемент. Однако не стоит переусердствовать с добавлением objectName при разработке собственного приложения, так как чрезмерно большое количество таких атрибутов может привести к замедлению работы UI.

Поиск по XPath

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

XPath (XML Path Language) — это язык запросов, который использует древовидную структуру документа. С синтаксисом языка можно ознакомиться здесь.

Существуют следующие базовые правила для работы с XPath:

  1. XPath запрос всегда начинается с символа / или //. Они используются следующим образом:

    • el1/el2 — выбирает элементы el2, являющиеся прямыми потомками el1;
    • el1//el2 — выбирает элементы el2, являющиеся потомками el1 любой степени вложенности.
  2. '[ ]' — команда фильтрации. Если по запросу найдено несколько элементов, то будет произведена фильтрация по правилу, указанному в скобках. Существует множество вариантов фильтрации, ниже приведены некоторые из них:

    • по атрибуту — например, если нужно найти элемент с классом LabelBase, у которого атрибут text содержит определенное значение, то поиск осуществляется так: //LabelBase[text()='Изменить событие'];
    • по индексу — при наличии нескольких элементов можно обратиться к определённому элементу в списке, например, //Button[2] найдет второй элемент на странице с классом Button;
    • по частичному совпадению атрибута — например, //LabelBase[contains(text(), 'Сегодня')] найдет элементы, у которых класс LabelBase и текст содержит слово "Сегодня", например "Сегодня, 20 апреля".
  3. Поиск по классу в XPath зависит от регистра.

Поиск по ClassName

У всех элементов на странице есть класс.

При открытии свойства элемента можно увидеть значение класса в поле ClassName. На странице из примера выше есть две кнопки с атрибутом ClassName: Button. При поиске по ClassName Appium Driver покажет все элементы, имеющие такой же ClassName.

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.