我最近开始使用 XCUI 测试设置在 iPhone 真实设备上自动化 iOS 应用程序。
我遇到一个场景,我的应用程序主页中包含 5 个屏幕,每个屏幕都包含一个唯一的卡号及其余额,因此我必须从屏幕中获取卡号并使用我输入的(预期)卡号进行验证,如果两者相同,那么我必须单击卡片屏幕,否则,如果两者不同,那么我必须向右滑动到第二个屏幕并执行相同的过程。
我能够在Android中完美地自动化这个场景,因为在Android中,每个屏幕都通过唯一的卡号明显区分,但是当我检查iOS应用程序上的卡号屏幕时,它显示了附加到应用程序的所有卡列表。在这种情况下,我很难从应用程序获取卡号并使用我输入的卡号进行验证。请参阅下面的代码,该代码已用于 android
String oysterCardVisibleNumberOnApp= data.get("PrestigeCardNumber");
while(!action.getText(HomePage.oysterCardNumber,"oysterCardNumber").equalsIgnorecase(oysterCardVisibleNumberOnApp))){
action.swipeRightToLeft();
}
如果有人知道如何从 iOS 应用程序检索元素/卡片列表,那就太好了,请告诉我。或者如果您知道 XCUI 设置中的任何新方法将帮助我实现这一目标,请告诉我。我们将非常感谢您的帮助:)
请参阅下面的 Android 屏幕和 iOS 屏幕图片以获得更清晰的信息
谢谢
最佳答案
例如,如果您停在断点处并使用:
po XCUIApplication().descendants(匹配:.any)
在调试控制台中,您将获得主应用程序元素的所有后代元素的列表。它还将为您提供结构的松散 View 。
然后您可以将 .any
更改为更具体的元素类型,例如.textField
或 .buttons
。
关于java - XCUI测试: How to fetch List of elements from the iOS screen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47712825/