selenium - 为什么 XCUITest 对 iOS 应用程序运行太慢?
问题描述
我想在 iOS 本机应用程序中获取动态元素的值。我曾经XCUITest
获取元素的路径。路径工作正常,但获取/打印值大约需要 1 分钟。我没有使用任何等待。
我的代码是:
String El1="//XCUIElementTypeApplication[@name='appName']/XCUIElementTypeWindow[1]/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeTable/XCUIElementTypeCell[5]/XCUIElementTypeStaticText";
System.out.println("Value: "+driver.findElementByXPath(El1).getText());
解决方案
XCTest 是一个相当快的框架。尽管 Xpath 非常常见且灵活,但它并不是查找 iOS 元素的最佳选择。您应缩短对该元素的查询并使用findElementByIosNsPredicate
IOSElement settingsCell = driver.findElementByIosNsPredicate("type == 'XCUIElementTypeCell' AND name == 'Settings'");
您可能会发现这篇文章很有帮助
http://appium.io/docs/en/writing-running-appium/ios/ios-predicate/
推荐阅读
- list - 运行代码时出现以下错误 - TypeError: must be real number, not list
- selenium-webdriver - 如何为 Selenium 日历中的月份和日期选择创建通用代码
- angularjs - 如何在 Cypress 中处理日期选择器
- java - Apache Beam Kafka 源连接器空闲分区问题与“CustomTimeStampPolicyWithLimitedDelay”
- android - 角度提及在离子 4 和 5 中不起作用
- jpa - JPA 多级关联
- javascript - Echarts showBackground 属性不起作用
- javascript - 比较两个对象打字稿并检查是否有三个或更多值相同
- android - 平板电脑风景中的 BottomSheetDialogFragment
- node.js - 使用 MongoDB + NodeJS 生成唯一 ID 时处理竞争条件和饥饿