2015-12-01 5 views
1

У меня есть тест пользовательского интерфейса, который отклоняет предупреждение, проверяет, было ли предупреждение уволено (если оно не пытается отменить его снова), а затем продолжается с остальной частью контрольная работа.XCode 7 UI Testing XCUIElementQuery случайно не обновляется должным образом

Большую часть времени тест проходит нормально, но иногда, казалось бы, случайно (хотя чаще в тренажере на машине с более старым оборудованием), тест будет делать следующее:

  • чек на чеку
  • нажмите на кнопку, которая отклоняет предупреждения
  • предупреждение уволен
  • чек на чеку (и до сих пор найти его - я вошел запрос в этой точке, и это действительно найти такое же предупреждение, что было просто отклонено)
  • попытка нажать на кнопку, которая отклоняет предупреждения
  • жалуются, что он не может найти тревогу и не

Несколько примечаний:

  • У меня не так, как до сих пор, наблюдал это поведение при прохождении теста с помощью отладчика.
  • Принудительный тест, чтобы немного подождать после отклонения предупреждения (используя такие вещи, как usleep()), все равно может вызвать такое поведение.

Почему запрос все еще находит предупреждение после его увольнения? Почему это поведение кажется случайным?

+0

Интересно ... Так кажется, эта проблема связана с тем, что предупреждение было показано одновременно с клавиатурой. Я изменил тест, чтобы отклонить клавиатуру до того, как будет показано предупреждение, и тест больше не работает. –

ответ

0

Вы пытались взаимодействовать с оповещением через обработчик UI Interruption?

addUIInterruptionMonitorWithDescription("Alert") { (alert) -> Bool in 
    alert.buttons["Allow"].tap() 
    return true 
} 
+0

Это похоже на работу с системными предупреждениями - соответствующее предупреждение создается приложением. –

+0

Я просто подтвердил, что это работает для созданного пользователем 'UIAlertController'. Удостоверились ли вы добавить обработчик прерывания * до того, как появится предупреждение? –

+0

Хммм. Предупреждение - это 'UIAlertView', а не' UIAlertController'. Полагаю, это может быть проблемой, поскольку она технически не рекомендуется. –

Смежные вопросы