Я пишу тестовый пример UI в Xcode 7 с новой инфраструктурой автоматизации, но я не получаю имя метода, чтобы проверить, появилось ли подсказку или нет, и затем отклонить подсказку с сенсорным идентификатором, которая отображается в моем приложении.Dimiss Touch Id action в XCode 7 Автоматизация пользовательского интерфейса
ответ
Вы можете отклонить приглашение Touch ID, недействив аутентификацию LAContext. Отвергая TouchID приглашение вводится в iOS9: -
func invalidateAuthenticationAlert(authContextObjext: LAContext){
print("Dismiss current prompt")
authContextObjext.invalidate()
}
Помните: -
Контекст аннулируется автоматически, когда он (авто) выпущен. Этот метод позволяет аннулировать его вручную, пока он все еще находится в области видимости.
Недействительность прекращает любую существующую оценку политики, и соответствующий вызов завершится с LAErrorAppCancel. После того, как контекст был признан недействительным, он не может использоваться для оценки политики, и попытка сделать это потерпит неудачу с LAErrorInvalidContext.
Недействительный контекст, который уже был признан недействительным, не влияет.
я не мог имитировать прикосновение пальца, но я был в состоянии отменить сенсорную приглашение ID с помощью addUIInterruptionMonitorWithDescription API доступна в тестовом рамках
я использовал код ниже, чтобы закрыть диалоговое
addUIInterruptionMonitorWithDescription("Touch ID") { (alert) -> Bool in
alert.buttons["Cancel"].tap()
return true
}
app.tap()
Кажется, что монитор больше не работает в Xcode 9. Блок завершения не вызывается – Doro
В Xcode 9 вы можете получить доступ к Springboard, чтобы отклонить приглашение TouchID:
func testExample() {
let springboard = XCUIApplication(bundleIdentifier: "com.apple.springboard")
let app = XCUIApplication()
app.launch()
// this causes the TouchID prompt to be displayed
app.buttons["Press Me!"].tap()
if springboard.alerts.buttons["Cancel"].waitForExistence(timeout: 10) {
springboard.alerts.buttons["Cancel"].tap()
}
// continue test
}
Его довольно легко убрать предупреждение с помощью кода, но я хочу отслеживать оповещение о тревоге системы, появившееся в пользовательском интерфейсе в тесте UI –
Я искал сделать то же самое. Кажется, что TouchID Enrolled и Simulated Finger Touch функциональности Simulator не могут быть реплицированы с помощью кода. Не могли бы вы отправить сообщение, если найдете ответ? Если нет, возможно, вам захочется рассмотреть вопрос о предоставлении функции Apple. –