Подтвердить что ты не робот

Ошибка времени сопоставления событий: не удалось найти соответствующий элемент

Я пытаюсь создать UItest в Xcode. Когда я пытаюсь использовать UIview, я получаю ошибка:

Timestamped Event Matching Error: Failed to find matching element

окно ошибки

введите описание изображения здесь

Это также происходит, если я пытаюсь нажать UIView.

4b9b3361

Ответ 1

Вы должны убедиться, что опция "Доступность" включена для объекта UIView, из которого вы работаете, например:

введите описание изображения здесь

Ответ 2

Обычно эта проблема наблюдается, когда родительский элемент элемента, который вы хотите записать, имеет значение isAccessibilityElement = true. В общем случае для доступа к дочернему элементу родительский элемент должен иметь значение false. Например: если у вас есть UILabel внутри представления, доступность должна быть установлена в false для представления и установлена в true для UILabel.

Ответ 3

В Xcode 9.3, где это, по-видимому, все еще проблема, я сделал следующее:

  • Выйти из Xcode
  • Сброс настроек симулятора (Оборудование → Стереть все содержание и настройки)
  • Выйти из симулятора
  • Удалить производные данные для текущего приложения
  • Перезапустите Xcode
  • Попробуйте записать снова - на этот раз это сработало для меня.

Ответ 4

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

Пример использования:

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 UI test - Ошибка тестирования пользовательского интерфейса - Не удалось прокрутить до видимого (с помощью действия AX), если нажать на поле поиска и кнопку "Отменить"

Ответ 5

Я иногда сталкивался с этой проблемой. Удалить каталог приложений из DerivedData, похоже, поможет.

Ответ 6

Решение, которое работало для меня, заключалось в том, чтобы идентифицировать объект по-разному. В Xcode 8 я смог использовать следующее:

XCUIApplication().tables.cells["Camera Roll"].buttons["Camera Roll"].tap()

С Xcode 9 я получил ошибку, упомянутую в этом вопросе. Закончилось использование следующего, которое сработало (что более похоже на исходный вариант)

XCUIApplication().cells.element(boundBy: 1).tap()