UIAutomation を使用してアプリケーションの自動テストを実行する方法を理解しようとしているので、JavaScript インターフェイスから駆動できる温度変換アプリを作成しました。UI は次のとおりです。
上部のテキスト フィールドには「摂氏」のアクセシビリティ ラベルがあり、同様に下部のフィールドにはアクセシビリティ ラベルとして「華氏」があります。私はこのスクリプトを介してそれを駆動しようとしています:
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
値は「華氏」 (テキスト フィールドの名前/ラベル) であるため、テストは失敗します。これはタイミングの問題ではないかと思い、タップ後に 1 秒の遅延を入れましたが、動作は変わりませんでした。
テキスト フィールドからテキストを取得し、期待値と比較することはできますか?