@iOSFindBy отображается как устаревший, что я могу использовать вместо него (используя pagefactory для гибридного использования устройств Android и iOS)) - PullRequest
0 голосов
/ 30 мая 2019

У меня нет опыта работы с iOS, но я пытаюсь изменить дизайн моего Android-проекта для iOS-парней, чтобы использовать его и для iOS.

После поиска в интернете я узнаю, что это может произойти с помощью фабрики страниц и поиска элементов по @iOSFindBy, После попытки использовать @iOSFindby для поиска элемента с использованием метода фабрики страниц, компилятор указывает, что он устарел.

@iOSFindBy (Accessibility = "button_login")    
@AndroidFindBy(id = "net.myApp.int:id/loginBtn")    
private MobileElement login_Button2; 

enter image description here

что я могу использовать вместо этого?

Я видел также в Java-клиенте Appium (https://static.javadoc.io/io.appium/java-client/7.0.0/index.html?deprecated-list.html):

* io.appium.java_client.pagefactory Тип аннотации iOSFindBy Устаревшее. Автоматизация UIA станет устаревшей. Вместо этого используйте iOSXCUITFindBy. Рекомендуется использовать XCUITest

@ Удержание (значение = RUNTIME) @Target (значение = {FIELD, TYPE}) @Repeatable (value = iOSFindBySet.class) public @interface iOSFindBy

Используется для пометки поля в объекте страницы, чтобы указать альтернативный механизм для определения местоположения элемента или списка элементов. Используется совместно с PageFactory, это позволяет пользователям быстро и легко создавать объекты PageObject. использование селекторов пользовательского интерфейса iOS, специальных возможностей, идентификатора, имени, имени класса, тега и xpath *

но я не знаю, если это решение и как использовать Если я использую это в моем коде, также получаю ошибку:

@iOSXCUITFindBy Accessibility = "button_login"
@AndroidFindBy(id = "net.myApp.int:id/loginBtn")
private MobileElement login_Button1;

Аннотации здесь не допускаются.

Спасибо за любой совет заранее

1 Ответ

1 голос
/ 31 мая 2019

Лучший способ узнать, как все работает, - это проверить соответствующие тесты в appium-java-client хранилище в github :

    @iOSXCUITFindBy(accessibility = "IntegerB")
    private MobileElement textField2;

Так что в вашемрегистр должен быть:

    @iOSXCUITFindBy(accessibility = "button_login")
    @AndroidFindBy(id = "net.myApp.int:id/loginBtn")
    private MobileElement login_Button1;
...