XCUI 测试:如何从 iOS 屏幕获取元素列表

kum*_*mar 2 java appium-ios appium-android xcuitest

我最近开始使用 XCUI 测试设置在 iPhone 真实设备上自动化 iOS 应用程序。

我遇到一个场景,我的应用程序在主页中包含 5 个屏幕,每个屏幕都包含一个唯一的卡号及其余额,因此我必须从屏幕中获取卡号并使用我输入的(预期)卡号进行验证(如果两者都包含)相同,那么我必须单击卡屏幕,否则如果两者不同,那么我必须向右滑动到第二个屏幕并执行相同的过程。

我能够在 Android 中完美地自动化这个场景,因为在 Android 中,每个屏幕都通过唯一的卡号明显区分,但是当我检查 iOS 应用程序上的卡号屏幕时,它显示了附加到应用程序的所有卡列表。在这种情况下,我很难从应用程序获取卡号并使用我输入的卡号进行验证。请参阅下面的代码,该代码已在 Android 上使用

String oysterCardVisibleNumberOnApp= data.get("PrestigeCardNumber");


while(!action.getText(HomePage.oysterCardNumber,"oysterCardNumber").equalsIgnorecase(oysterCardVisibleNumberOnApp))){
      action.swipeRightToLeft();
     }
Run Code Online (Sandbox Code Playgroud)

如果有人知道如何从 iOS 应用程序检索元素/卡片列表,那就太好了,请告诉我。或者如果您知道 XCUI 设置中的任何新方法将帮助我实现这一目标,请告诉我。非常感谢您的帮助:)

请参阅下面的 Android 屏幕和 iOS 屏幕图片以获得更清晰的信息

安卓屏幕

iOS 屏幕

谢谢

小智 5

例如,如果您停在断点处并使用:

po XCUIApplication().descendants(matching: .any)

在调试控制台中,您将获得主应用程序元素的所有后代元素的列表。它还将为您提供结构的松散视图。

然后您可以更改.any为更具体的元素类型,例如.textField.buttons