【发布时间】:2015-10-21 08:16:21
【问题描述】:
我正在使用 Appium 为 iOS 原生应用程序编写 UI 自动化测试,并逐渐意识到大多数元素定位策略在 iOS 上并不可靠。
除了随机工作的 XPath,我还有其他选择:
- 辅助功能 ID(不适用于我)
- name(不是每个元素都有'name'属性的值)
- 类(在处理元素列表时才有意义)
- iOS UiAutomation 谓词(初学者的陡峭学习曲线)
我一直在尝试了解如何使用 iOS UiAutomation 定位器策略并使用它查找元素,但它不适用于 Appium Inspector。我参考了这些文档(Appium iOS Predicate reference、Apple UIAutomation reference),但我觉得它们迎合了对 iOS 开发有一定了解的高级 Appium 用户,而不是初学者。
我当前的自动化设置是:
- XCode 6.3.2
- Appium 1.4.8
- iOS 8.3
- Appium Java 客户端 3.1.0
我可以使用什么定位器来使用 UiAutomation 谓词策略定位突出显示的元素?我一直在 Appium Inspector 上尝试一些选项,例如:
applications()[0].windows()[0].navigationBars()[0].textFields().withPredicate("value == 'Search eBay'").textFields().withPredicate("value == 'Search eBay'")
这些都不起作用。我在这里做错了什么?是否有任何其他文档可以从头开始清楚地解释 iOS UiAutomation 定位器?如果有人能解释这些基础知识,那将非常有帮助。
【问题讨论】:
-
你可以通过 driver.findElement(By.id("Search eBay")) 找到它
-
Xpath 总是对我有用,我从未尝试过使用可访问性标识符,但根据文档它应该可以工作
标签: ios iphone appium ios-ui-automation