Получение значений из текстовых полей с помощью UIAutomation

Я пытаюсь понять, как UIAutomation можно использовать для выполнения автоматических тестов приложений, поэтому я создал приложение для преобразования температуры, которым можно управлять из интерфейса JavaScript. Вот пользовательский интерфейс:

enter image description here

Верхнее текстовое поле имеет метку доступности «Цельсия», аналогично нижнее поле имеет метку доступности «Фаренгейт». Я пытаюсь запустить его через этот скрипт:

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

Можно ли получить текст из текстового поля и сравнить его с ожидаемым значением?

5
задан 25 November 2011 в 11:04
поделиться