Для приложения, над которым я работаю, ранее у меня был набор тестов пользовательского интерфейса, который работал и проходил. Я не трогал и не запускал тесты некоторое время и только недавно вычистил их, чтобы убедиться, что они все еще работают в Xcode 11 и iOS 13, однако я сталкиваюсь с некоторыми странными ошибками, с которыми я мог бы воспользоваться некоторыми советами.
У меня есть ячейка табличного представления, подобная следующей (изначально текст в поле отличается от того, что показано). Если я выполню следующий тестовый код, текстовое поле активируется, текст очищается и вводится новое значение.
![enter image description here](https://i.stack.imgur.com/KAmsx.png)
let modelNameField = tables.cells.containing(.staticText, identifier: "Model Name").children(matching: .textField).element(boundBy: 0)
let _ = modelNameField.waitForExistence(timeout: 2)
modelNameField.tap()
modelNameField.buttons.firstMatch.tap()
modelNameField.typeText("The Other Jet")
XCTAssertEqual("The Other Jet", modelNameField.value as? String)
Однако вСимулятор iOS 12, тесты не пройдены, так как значение modelNameField равно нулю. Если я попробую точно такой же код в симуляторе iOS 13, он будет работать как положено, и значение modelNameField будет правильным. Интересно, что в iOS 12, если я переберу все app.textfields и выведу значения, они должны быть такими:
for field in app.textFields.allElementsBoundByIndex {
print(field.value)
}
Я бы назвал это ошибкой, но я хотел проверить, есть личто-то, чего мне не хватает, или способ сделать это по-другому, который по-прежнему позволил бы мне тестировать вещи на устройствах iOS 12 в симуляторе.