Frage

Da ich das UIauTomation -Tool von Instrumenten verwende, brauche ich im Folgenden Informationen:

1) Gibt es ein Verfahren zum dynamischen Giviing von Daten? Wenn ich beispielsweise dieses Skript verwenden muss, um verschiedene Daten für TextField zu testen, wie kann ich dann schafft, ohne das Skript für den hartcodierten Textfeldwert zu ändern? Ich möchte nicht über manuelle Schleife in JavaScript tun? Ist es möglich, SQLite zu verwenden, durch das JavaScript Liste der Textfeldwerte enthält? Ich bin eine neue UIauTomierung in Instrumenten in iOS. Die folgende Zeile ist der erste Befehl im Skript

        UIATarget.localTarget().frontMostApp().mainWindow().textFields()["username"].setValue("test");

Aber ich möchte SetValue im folgenden Befehl über Terminal geben, ohne das tatsächliche Skript zu ändern

  instruments -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate <full_path_to_application> -e UIASCRIPT <path_to_script.js> -e UIARESULTSPATH <output_results_path>

Jemand kann helfen, wie man SetValue über den obigen Befehl dyanmisch verleiht? Ist eine weitere Möglichkeit, SetValue für den Benutzernamen dynamisch zu geben, ohne das Skript manuell zu verändern?

2) Ist es möglich, die Komponenten und Attribute des Bildschirms durch JavaScript in UIAUTOMATION zu überprüfen?

War es hilfreich?

Lösung

1. Ja. Sie sollten ein Skript auf Systemebene schreiben, das JavaScript-Code aus den Daten generiert und die Instrumente aus der Befehlszeile aufruft. Ein Beispielskript ist:

#!/bin/bash
echo 'var thisIsAGeneratedInput = "Sample Input variable";' > input.js
instruments -t test.tracetemplate your_app_with_path.app -e UIASCRIPT test.js

Die Datei "test.js" sollte aussehen wie:

#import "input.js"
UIALogger.logMessage(thisIsAGeneratedInput);

2. Die Funktion value() ist der richtige Weg, um die angeforderten Informationen zu erhalten, name() Gibt die Zugänglichkeits -ID zurück, falls angegeben. Hinweis: In Xcode 5 value() Könnte nicht funktionieren, verwenden name() Für die Problemumgehung, aber vor Version 5 war es in Ordnung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top