Я пишу тестовые примеры пользовательского интерфейса для одного из моих приложений, используя 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, который мог бы решить эту проблему. Например:
- Коснитесь места на экране
- Получайте оповещения вне приложения
Итак, как я могу пройти мимо этого? Есть ли способ настроить тестовые цели, чтобы авторизация службы определения местоположения не требовалась.