我没有使用iOS的经验,但是我正在尝试为iOS家伙重新设计我的Android项目,以将其也用于iOS。
在互联网上搜索后,我发现可以通过使用页面工厂并通过@iOSFindBy定位元素来实现, 尝试通过页面工厂方法使用@iOSFindby定位元素后,编译器指示已弃用该元素。
@iOSFindBy (Accessibility = "button_login")
@AndroidFindBy(id = "net.myApp.int:id/loginBtn")
private MobileElement login_Button2;
我可以代替它使用什么?
我也在Appium Java客户端(https://static.javadoc.io/io.appium/java-client/7.0.0/index.html?deprecated-list.html)中看到过:
* io.appium.java_client.pagefactory 注释类型iOSFindBy 不推荐使用。 UIAutomation将不推荐使用。请改用iOSXCUITFindBy,建议使用XCUITest
@保留(值=运行时间)@目标(值= {FIELD,TYPE}) @Repeatable(value = iOSFindBySet.class)public @interface iOSFindBy
用于标记页面对象上的字段,以指示用于定位元素或元素列表的替代机制。与PageFactory结合使用,可以使用户快速轻松地创建PageObjects。使用iOS UI选择器,可访问性,ID,名称,类名称,标记和xpath *
但我不知道这是否是解决方案以及如何使用 如果我在代码中使用它,也会出现错误:
@iOSXCUITFindBy Accessibility = "button_login"
@AndroidFindBy(id = "net.myApp.int:id/loginBtn")
private MobileElement login_Button1;
此处不允许使用注释。
感谢任何提前提示
答案 0 :(得分:1)
了解工作原理的最好方法是在github上的 appium-java-client 存储库中检查相关测试:
@iOSXCUITFindBy(accessibility = "IntegerB")
private MobileElement textField2;
因此,您的情况应该是:
@iOSXCUITFindBy(accessibility = "button_login")
@AndroidFindBy(id = "net.myApp.int:id/loginBtn")
private MobileElement login_Button1;