appium - @iOSFindBy 显示为已弃用,我可以改用什么(使用 pagefactory 混合使用 Android 和 iOS 设备))
问题描述
我没有使用 iOS 的经验,但我正在尝试为 iOS Guys 重新设计我的 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
@Retention(value=RUNTIME) @Target(value={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;
这里不允许注释。
提前感谢任何提示
解决方案
了解事情如何工作的最好方法是检查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;
推荐阅读
- javascript - 一个处理完成后打开多个jQuery确认框
- java - 如何将多个图像的 downloadUrl 存储到 Firebase Firestore ?无法在 Firestore 文档内的多个字段中创建和存储
- regex - 查找不在另一个文本字符串中的文本?
- javascript - 比较嵌套的对象数组
- hadoop - Hadoop Namenode 和 Secondary Namenode 不以 PDSH 退出代码 1 开头
- algorithm - 如何通过图像处理方法提取分水岭的标记?
- asp.net - 在 Web 请求中创建 MSSqlServerSink 会造成内存泄漏或类似类型的问题吗?
- reactjs - 可以渲染自定义组件的 React Native modal
- javascript - 如何从 js 输出中使用猫鼬获取数据?
- c# - 如何根据表中的现有数据记录选中或取消选中 Datagridview 中的复选框