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

Java XCUI测试:如何从iOS屏幕获取元素列表,java,appium-ios,appium-android,xcuitest,Java,Appium Ios,Appium Android,Xcuitest,我最近开始使用XCUI测试设置在iPhone real设备上自动化iOS应用程序 我的应用程序在主页上包含5个屏幕,每个屏幕都包含一个唯一的卡号及其余额,因此我必须从屏幕上获取卡号,并用我输入的(预期的)卡号进行验证,如果两者相同,则我必须单击卡片屏幕,否则如果两者不相同,则我必须向右滑动到第二个屏幕并执行相同的过程 我能够在android中完美地自动化这个场景,因为在android中,每个屏幕都有一个唯一的卡号,但当我检查iOS应用程序上的卡号屏幕时,它显示了附加到该应用程序的所有卡的列表。在

我最近开始使用XCUI测试设置在iPhone real设备上自动化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屏幕图片以获得更清晰的信息


谢谢

您可以使用xcode中的可访问性检查器来执行以下操作:


根据您在应用程序中选择的区域,它会返回每个区域的详细描述。但它带来的回报取决于应用程序的结构。我曾尝试在自己的ios应用程序中执行类似的操作,这对我有所帮助。

您可能可以使用xcode中的可访问性检查器来完成以下操作:


根据您在应用程序中选择的区域,它会返回每个区域的详细描述。但它带来的回报取决于应用程序的结构。我尝试在自己的ios应用程序中执行类似的操作,这对我有点帮助。

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

po XCUIApplication().子体(匹配:.any)

在调试控制台中,您将从主应用程序元素获得所有子代元素的列表。它也会给你一个松散的结构视图


然后,您可以将
.any
更改为更具体的元素类型,例如
.textField
.buttons
,如果您在断点处停止,并使用:

po XCUIApplication().子体(匹配:.any)

在调试控制台中,您将从主应用程序元素获得所有子代元素的列表。它也会给你一个松散的结构视图


然后,您可以将
.any
更改为更具体的元素类型,例如
.textField
.buttons
您可以使用
xguiapplication().debugDescription
打印出xguitest看到的UI树。您还可以更新应用程序代码,为UI元素设置自定义标识符(这些标识符仅由XCUIEST查看)。例如,
card-1
等。

您可以使用
xguiapplication().debugDescription
打印出xguitest看到的UI树。您还可以更新应用程序代码,为UI元素设置自定义标识符(这些标识符仅由XCUIEST查看)。例如,
card-1
,等等。

感谢您为我指出了可访问性检查器的概念,但我想知道,在我看到的每个地方,此可访问性检查器仅适用于iOS模拟器版本。我想知道这是否也适用于检查iPhone real设备,因为我正在iPhone real上测试我的应用程序device@kumar没问题。不幸的是,你不能在真正的设备上使用它,但我发现了一个有趣的页面,关于使用Apple VoiceOver技术在真正的设备上测试你的应用程序:感谢你向我指出可访问性检查器的概念,但我想知道,在我看到的每个地方,该可访问性检查器仅适用于iOS模拟器版本。我想知道这是否也适用于检查iPhone real设备,因为我正在iPhone real上测试我的应用程序device@kumar没问题。不幸的是,您无法在真实设备上使用它,但我发现了一个有趣的页面,介绍如何使用Apple VoiceOver技术在真实设备上测试您的应用程序: