У меня есть 2 нативных приложения (не гибридных и не реагирующих нативно), они имеют одинаковый дизайн, одно для Android (JAVA), а другое для IOS (OC). Теперь мне нужно сделать тест для этих двух приложений. Я пытаюсь сделать это с Appium.

Appium предоставляет множество методов для поиска элемента. Чтобы написать контрольный пример для обоих приложений, кажется, я могу использовать AccessibilityId. Если я попрошу разработчика добавить один и тот же AccessibilityId в проект android и ios, я смогу заставить один и тот же тестовый код работать с обоими приложениями. Это лучшая практика? Это может принести много усилий команде разработчиков android и ios, чтобы добавить AccessibilityId

3
Leon 19 Окт 2017 в 10:30

3 ответа

Лучший ответ

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

Вы можете определить эти элементы с помощью тегов FindBy в определении класса следующим образом:

@iOSFindBy(id = "send_button")
@AndroidFindBy(id = "SEND")
private MobileElement sendButton;

Ваш код действия будет:

sendButton.click()

Дополнительную информацию об этих и других тегах можно найти в документации библиотеки PageFactory..

Если ваши идентификаторы совпадают, вы можете выполнить свои действия в строке (пример ниже), но я обычно предпочитаю определять свои элементы вне моих методов.

driver.findElementById("send_button");

Все вышеперечисленное может быть выполнено с xpaths, а также с другими атрибутами, упомянутыми в документации.

1
Mike Collins 19 Окт 2017 в 18:30

Поскольку одно и то же приложение работает на 2 разных платформах, вы можете иметь один и тот же AccessibilityId, если ваш проект обладает такой роскошью (значит, над этим работают как ios, так и android разработчики). В противном случае вам поможет наличие одного и того же логического сценария тестирования с разными объектами репо / возможностями.

0
Udhaya 1 Ноя 2017 в 18:23

Для приложений Android вы можете использовать uiautomatorviewer, чтобы найти элемент.

0
Al Imran 19 Окт 2017 в 08:50