java - XCUI测试: How to fetch List of elements from the iOS screen

标签 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();
     }

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

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

Android Screen

iOS Screen

谢谢

最佳答案

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

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/

相关文章:

java - 仅使用 Jersey 和 Java 创建一个简单的 html 服务器

java - 在 @ExceptionHandler 内部抛出异常

java - 无法创建 log4j 日志文件

java - 实例化对象时出现 Appium 错误

java - 解决间歇性垃圾收集问题 - Java

java - 如何在 iPhone 真实设备上检查和编写 xpath

react-native - 如何在 Appium 测试用例中访问 React-native 按钮(TouchableHighlight)

Appium 支持 Xcode 8

java - Android for Java-Client-5.0.3 中的滑动功能不起作用

android - 如何为android SDK命令行工具设置环境变量