let app = XCUIApplication()
let deleteKey = app.keys["delete"]//кнопка на клавиатуре
let elementsQuery = app.scrollViews.otherElements
let buttonEdit = elementsQuery.images["EditProfileIcon"]
buttonEdit.tap()//переход в режим редактирования
let textLastName = app.scrollViews.otherElements.textFields["Last Name"]
let textValue = textLastName.value.debugDescription
let n = textValue.count - 10 //не удалось избавиться по простому от опционал поэтому лайфхак
for _ in 1...n {
deleteKey.tap()
}
textLastName.typeText("Testov")
let okiconImage = elementsQuery.images["OkIcon"]
okiconImage.tap()
}
Да свифт я изучаю именно как вы сказали.
По XCUI не встречалось вам каихнить материалов?
Но есть нюансы именно XCUI, по которым очень мало информации и зачастую приходиться лазить по форумам(аля stackoverflow) и искать схожие проблемы.
Сейчас к примеру затык wait, sleep не срабатывал потому что приложение не уходит в режим ожидания.
Кейс: надо проверить работу записи аудио, нажимается кнопка записи и нужно подождать 5,10…25 сек(мин) а потом нажать кнопку стоп.
Вот waitForExpectetion не отрабатывает(((
Так а какой у вас Expectation ? Если вам нужно просто что бы тест подождал 5, 10 и больше секунд, то вам нужно использовать sleep а не ожидание. Потому что вы ничего не ожидаете, вы просто хотите подождать пока запись произойдет.
Работает в том случае, когда приложение именно уходит в сон(логично оно так и называется),
а в моем случае приложение в сон не уходит, оно производит запись, таймер наращивается и т.п…
Или допустим все мои кейсы разбиты в XCUITest по func, так удобнее их запускать по отдельности в отличии от step(да и еще не понял как правильно им работать).
Так вот как запускать из консоли тесты и как выводить в виде отчета(в какую нить таблицу) ХЗ.
Или как в тех же тестах запускать каждый тест без переустановки приложения…нет всех этих мелочей…
У меня в тесте я с помощью sleep жду несколько секунд пока мне на тестовый сервис прийдет код подтверждение и потом я читаю этот код и продолжаю свой тест. Приложение висит открытым при этом. Но как вариант, вы можете использовать XCTWaiter и ждать какого небудь несуществующего элемента. Он через указаное время вернет false и вы себе просто игнорируете этот результат.