Я пытаюсь понять, как UIAutomation можно использовать для автоматического тестирования приложения, поэтому я создал приложение для преобразования температуры, которое можно запускать из интерфейса JavaScript.Вот пользовательский интерфейс:
Верхнее текстовое поле имеет метку Доступности «Цельсия», аналогично нижнее поле имеет «Фаренгейт» в качестве метки Доступности.Я пытаюсь прогнать его через этот скрипт:
UIALogger.logStart("Test -40ºC == -40ºF");
var window = UIATarget.localTarget().frontMostApp().mainWindow();
var celsiusField = window.textFields()["Celsius"];
var fahrenheitField = window.textFields()["Fahrenheit"];
var convertButton = window.buttons()["Convert"];
celsiusField.setValue("-40");
convertButton.tap();
var fahrenheitValue = fahrenheitField.value();
if (fahrenheitValue == "-40.0") {
UIALogger.logPass("-40C == -40F");
} else {
UIALogger.logFail("-40C == " + fahrenheitValue + "F");
}
Это корректно устанавливает текст в поле Цельсия на «-40», и когда кнопка нажата, приложение обновляет текст в градусах Фаренгейтаполе до "-40.0".Однако fahrenheitValue
имеет значение «Фаренгейт» (имя / метка текстового поля), поэтому проверка не пройдена.Я задавался вопросом, возможно, это была проблема с синхронизацией, поэтому поместите задержку в одну секунду после касания, которое не изменило поведение.
Можно ли вывести текст из текстового поля и сравнитьэто с ожидаемым значением?