Я пытаюсь понять, как 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
имеет значение «Fahrenheit» (имя / метка текстового поля), поэтому тест не проходит. Я задавался вопросом, может быть, это проблема с синхронизацией, поэтому поставьте односекундную задержку после нажатия, что не изменило поведение.
Можно ли получить текст из текстового поля и сравнить его с ожидаемым значением?