0

我正在为我的应用程序编写 UITest。测试运行时,我收到“登录以完成购买”提示:

在此处输入图像描述

我能够填写“Apple ID”文本字段,因为键盘已经打开并准备好填写它 - 为此,我使用了:

XCUIApplication *app = [[XCUIApplication alloc] init];
[app typeText:@"My iTunes username"];

但我无法模拟对密码字段的点击。我不知道如何在 UI 中找到它。我尝试了很多选项(但没有一个有效):

XCUIElementQuery *collectionViewsQuery = app.collectionViews;
[collectionViewsQuery.textFields[@"password"] tap];
[collectionViewsQuery.textFields[@"Password"] tap];
[[collectionViewsQuery.textFields firstMatch] tap];
[collectionViewsQuery.secureTextFields[@"password"] tap];
[collectionViewsQuery.secureTextFields[@"Password"] tap];
[[collectionViewsQuery.secureTextFields firstMatch] tap];

XCUIApplication *springboard = [[XCUIApplication alloc] initWithBundleIdentifier:@"com.apple.springboard"];
[[springboard.alerts firstMatch].textFields[@"password"] tap];
[[springboard.alerts firstMatch].textFields[@"Password"] tap];

我认为真正的问题是我无法获得相应的视图(或在这种情况下为 collectionView)。我尝试查看 Apple 文档,但找不到任何东西。我确实看到了为应用内购买测试添加配置文件的选项,但在我的情况下,我不测试应用内购买。我从我的应用程序中下载了另一个应用程序,以检查 AWS 设备场上的转化价值 (SKAdNetwork)。

4

1 回答 1

0

几个小时后,我找到了答案:

- (void)signInToItunes {
    XCUIApplication *app = [[XCUIApplication alloc] init];
    [app typeText:@"YourAppleID"];
    sleep(2);

    [[app.secureTextFields firstMatch] tap];
    [app typeText:@"YourPassword"];
    sleep(2);
    
    [app.buttons[@"Sign In"] tap];
}
于 2021-05-20T12:19:08.703 回答