Estoy tratando de entender cómo se puede usar UIAutomation para realizar pruebas automáticas de aplicaciones, así que creé una aplicación de conversión de temperatura que se puede usar desde la interfaz de JavaScript. Esta es la interfaz de usuario:Obteniendo valores de los campos de texto con UIAutomation
El campo de texto superior tiene una etiqueta de Accesibilidad "Celsius", de manera similar el campo inferior tiene "Fahrenheit", como su etiqueta de Accesibilidad. Estoy tratando de conducir a través de este script:
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");
}
Esto establece correctamente el texto en el campo Celsius a "-40", y cuando se pulsa el botón, la aplicación actualiza el texto en el campo de Fahrenheit "-40.0". Sin embargo, fahrenheitValue
tiene el valor "Fahrenheit" (el nombre/etiqueta del campo de texto), por lo que la prueba falla. Me pregunté si esto podría ser un problema de tiempo, así que puse un retraso de un segundo después del toque, lo que no cambió el comportamiento.
¿Es posible obtener el texto del campo de texto y compararlo con el valor esperado?
Esa parece haber sido la respuesta. Eliminé el texto del marcador de posición, y ahora las cosas funcionan como deberían. Probablemente debería presentar un error sobre eso :) –