2015-12-23 7 views
1

У меня есть экран входа в мое приложение, после которого после отклонения имени входа появляется табло.Swift UI Test терпит неудачу на симуляторе iphone4s хорошо работает с другими

Приложение само работает хорошо во всех устройствах/симуляторах. Тест UI работает во всех симуляторах, кроме iphone 4s.

Я думаю, причина в том, что после входа в систему это занимает слишком много времени, чтобы экран входа в систему исчез. Поэтому, когда я пытаюсь получить доступ к табуляции, он выдает исключение.

Я попытался

let tabBarsQuery = app.tabBars 
let predicate = NSPredicate(format: "exists == true") 
expectationForPredicate(predicate, evaluatedWithObject: tabBarsQuery, handler: nil) 
waitForExpectationsWithTimeout(15, handler: nil) 

Я получаю следующее сообщение об ошибке

failed: caught "NSUnknownKeyException", "[<XCUIElementQuery 0x7e080d40> valueForUndefinedKey:]: this class is not key value coding-compliant for the key exists." 

Почему ожидания не работает? Как я могу решить эту проблему?

+0

Все ли устройства, которые вы использовали для тестирования, имеют ту же самую прошивку iOS? – LinusGeffarth

+0

Я установил все симуляторы в 9.2, и теперь это происходит во всех них. –

+0

, когда я удаляю 'предикат', он работает для всех из них, кроме 4s, хотя –

ответ

0

Таким образом, проблема с этим, по-видимому, заключается в том, что по какой-либо причине свойство .exists не существует для коллекции XCUIElementQueries. В вашем примере вы не могли бы сделать app.tabBars.exists. Однако вы можете изменить свой предикат:

let predicate = NSPredicate(format: "count > 0") 

И это должно сработать.