Заполните поле пароля в подсказке iTunes на UITest

Я пишу UITest для своего приложения. Во время выполнения теста я получаю сообщение «Войдите в систему, чтобы завершить покупку»:

Мне удалось заполнить текстовое поле «Apple ID», поскольку клавиатура уже открыта и готова к его заполнению. Для этого я использовал:

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

Но смоделировать тап по полю пароля я не смог. Я не мог понять, как это найти в пользовательском интерфейсе. Я перепробовал множество вариантов (но ни один из них не сработал):

      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, но ничего не нашел. Я видел возможность добавить файл конфигурации для тестирования покупок в приложении, но в моем случае я не тестирую покупки в приложении. Я загружаю другое приложение из своего приложения, чтобы проверить ценность конверсии (SKAdNetwork) на ферме устройств AWS.

1 ответ

Через несколько часов я нашел ответ:

      - (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];
}
Другие вопросы по тегам