Я пишу тестовые примеры для одного из моих приложений, используя XCUIApplication, XCUIElement и XCUIElementQuery, представленные в Xcode7/iOS 9.
Я попал в дорожный блок. Один из экранов в тестовом случае требует службы местоположения iOS. Как и ожидалось, пользователю будет предложено разрешить использование службы определения местоположения с предупреждением под заголовком: Allow "App name" to access your location while you use the app?
с кнопками Allow
и Don't Allow
.
Проблема в том, что, так как предупреждение представлено самой ОС, оно отсутствует в поддереве элемента приложения.
Я зарегистрировался следующим образом:
print("XYZ:\(app.alerts.count)")//0
var existence = app.staticTexts["Allow "App Name" to access your location while you use the app?"].exists
print("XYZ:\(existence)")//false
existence = app.buttons["Allow"].exists
print("XYZ:\(existence)") //false
Даже запись в пользовательском интерфейсе сгенерировала аналогичный код:
XCUIApplication().alerts["Allow "App Name" to access your location while you use the app?"].collectionViews.buttons["Allow"].tap()
Я не нашел API, который может заставить меня пройти мимо этой проблемы. Например:
- Нажмите в позиции на экране
- Получить оповещения вне приложения
Итак, как я могу пройти мимо этого? Есть ли способ настроить тестовые цели, чтобы не разрешать авторизацию службы геопозиционирования.