我试图了解如何使用 UIAutomation 来执行自动应用程序测试,因此我创建了一个可以从 JavaScript 界面驱动的温度转换器应用程序。这是用户界面:
顶部文本字段具有“Celsius”的可访问性标签,类似地,底部字段具有“Fahrenheit”作为其可访问性标签。我试图通过这个脚本来驱动它:
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
具有“华氏度”值(文本字段的名称/标签),因此测试失败。我想知道这是否可能是时间问题,所以在点击后延迟一秒钟,这并没有改变行为。
是否可以从文本字段中获取文本并将其与预期值进行比较?