Я пытаюсь создать UItest в Xcode. Когда я пытаюсь пролистать UIview, я получаю сообщение об ошибке:
Timestamped Event Matching Error: Failed to find matching element
Это также происходит, если я пытаюсь нажать UIView.
Я пытаюсь создать UItest в Xcode. Когда я пытаюсь пролистать UIview, я получаю сообщение об ошибке:
Timestamped Event Matching Error: Failed to find matching element
Это также происходит, если я пытаюсь нажать UIView.
Ответы:
fastlane
для создания снимков экрана tableView. stackoverflow.com/a/39331154/4475605
isAccessibilityElement = true
Обычно эта проблема наблюдается, когда для родительского элемента элемента, который вы хотите записать, установлено значение isAccessibilityElement = true. Как правило, для доступа к дочернему элементу необходимо установить для родительского элемента значение false. Например: если у вас есть UILabel внутри представления, доступность должна быть установлена на false для представления и установлена на true для UILabel.
В Xcode 9.3, где это, по-видимому, все еще проблема, я сделал следующее:
Для записи нового теста пока не думаю, что есть решение. Но, если вы используете удлинитель с принудительным отводом с уже существующим тестом, работает.
Пример использования:
extension XCUIElement {
func forceTapElement() {
if self.hittable {
self.tap()
}
else {
let coordinate: XCUICoordinate = self.coordinateWithNormalizedOffset(CGVectorMake(0.0, 0.0))
coordinate.tap()
}
}
}
func testSomethingWithCells() {
let app = XCUIApplication()
let cells = app.tables.cells
sleep(1)
cells.elementBoundByIndex(0).forceTapElement()
}
Вы можете проверить исходный пост здесь:
Решение, которое сработало для меня, заключалось в том, чтобы идентифицировать объект по-другому.
В Xcode 8 я смог использовать следующее:
XCUIApplication().tables.cells["Camera Roll"].buttons["Camera Roll"].tap()
С Xcode 9 я получил ошибку, упомянутую в этом вопросе. Закончилось использованием следующего, которое сработало (хотя и более хлопотно, чем исходный вариант)
XCUIApplication().cells.element(boundBy: 1).tap()