2015-10-06 3 views
0

В настоящее время я работаю в рамках XCTest iOS и использую функцию .exists для проверки присутствия элемента. Хотите узнать, есть ли другой способ проверить наличие элемента в пользовательском интерфейсе, поскольку проблема возникает. Тесты становятся успешными при первом запуске, но когда он запускается второй раз, он получает отказ, потому что скрипт нажимает элемент, которого нет в пользовательском интерфейсе, может быть потому, что элементы, загруженные в первый раз в приложении, остаются скрытыми, но существуют.Есть ли способ проверить элемент в XCTest, кроме функции .exists?

Пожалуйста, дайте мне знать любую функцию, которая проверяет наличие текущего элемента экрана.

+1

не должен вы не проверять для этого элемента, если он не существует, то? Похоже, просто изменить логин ваших утверждений. – cakes88

ответ

0

Я тоже ищу способ подождать, пока элемент не появится вместо использования метода сна. иногда элементы пользовательского интерфейса занимают больше времени для загрузки, но это не значит, что в конечном итоге оно не появится. В этот момент вы можете проверить использовать .exists

Существует класс Reference XCUIApplication, не организовано яблоко, но его в OBJ-C: http://masilotti.com/xctest-documentation/index.html

UPDATE: Я думаю, что я нашел решение по этой ссылке Delay/Wait in a test case of Xcode UI testing

Использование класса NSPredicate для меня работало.

let welcomePage = app.staticTexts["Landing Page"] 
    let existsPredicate = NSPredicate(format: "exists == 1") 

    expectationForPredicate(existsPredicate, evaluatedWithObject: LandingPageLoad, handler: nil) 
    waitForExpectationsWithTimeout(5, handler: nil) 
  • Сначала создайте константу, из значения или объект вы ждете
  • Создать другую константу с помощью класса NSPredicate сравнить значение с объекта
  • Затем используйте метод expectationForPredicate наряду с вары
  • И, наконец, дать обработчику тайм-аут верхний предел
Смежные вопросы