我最近开始使用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屏幕图片以获得更清晰
谢谢
答案 0 :(得分:1)
例如,如果您在断点处停留并使用:
po XCUIApplication().descendants(matching: .any)
然后,您可以将.any
更改为更具体的元素类型,例如.textField
或.buttons
。
答案 1 :(得分:0)
您可以在xcode中使用辅助功能检查器:
根据您在应用中选择的区域,它会给出每个区域的详细说明。但它带来的东西取决于您的应用程序的结构。我试图在我自己的ios应用程序中做类似的事情,这对我有所帮助。
答案 2 :(得分:0)
您可以使用XCUIApplication().debugDescription
从XCUITest看到的UI树中打印出来。您还可以更新应用程序代码以设置UI元素的自定义标识符(这些只能由XCUITest查看)。例如card-1
等。