1) Я проверяю интерфейс с быстрым в Xcode 7.3, и я с использованием как .hittable и .exists для тестирования является ли скрытый ярлык или нет, и они оба работают. Я проверяю «true» и «false», чтобы убедиться, что в любом случае это согласуется с результатом.
У меня есть метка, статический текст которой является «Информация о дорожке» и устанавливается, чтобы быть скрытой, когда приложение загружается, а затем я нажимаю кнопку, чтобы показать метку, и вот результат после показа этикетки.
// тест не
let trackInfoLabel = app.staticTexts["Track info"]
XCTAssertEqual(trackInfoLabel.exists, true)
XCTAssertEqual(trackInfoLabel.hittable, true)
// тест проходит
XCTAssertEqual(trackInfoLabel.exists, false)
XCTAssertEqual(trackInfoLabel.hittable, false)
// тест проходит
let trackInfoLabel = app.staticTexts["Track Info"]
XCTAssertEqual(trackInfoLabel.exists, true)
XCTAssertEqual(trackInfoLabel.hittable, true)
// тест не
XCTAssertEqual(trackInfoLabel.exists, false)
XCTAssertEqual(trackInfoLabel.hittable, false)
Leter on, когда я нажимаю кнопку, чтобы скрыть ярлык, все результаты были противоположными. Это подтверждает, что оба свойства (hittable и exists) работают для установки label.hidden.
2) Еще один способ узнать, скрыт ли элемент, вы можете сделать это: element.frame.size.width == 0 || element.frame.size.height == 0
Это не работает для меня на Xcode 7.1. Я обновляю некоторые элементы управления до скрытых динамически и проверяю потом, и это всегда возвращает true, даже если элемент управления явно скрыт. – Alex
Xcode 7.2 hittable test не работает должным образом для скрытых элементов, либо –
Xcode 7.2.1 тест hittable не работает должным образом для скрытых элементов – san