5

Wenn ich ein UIAutomation Skript in Instruments laufen, alles funktioniert gut, aber wenn ich genau die gleiche Skript von der Befehlszeile ausführen, bekomme ich diesen Fehler: Cannot perform action on invalid element: UIAElementNil from target.frontMostApp().mainWindow().tableViews()[0].cells()["ID number, Required"].textFields()[0]UIAutomation - unterschiedliche Ergebnisse von Instrumenten und Command Line

Hier die Instrumente gebieten ich bin mit dem Test

instruments -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate /Users/johan/Library/Developer/Xcode/DerivedData/Brokers-etvmwznhcjprybdekgtixzzsnbrw/Build/Products/Release-iphonesimulator/MyApp -e UIASCRIPT /Users/johan/Desktop/Script.js 
+0

Können Sie den Instrumentenbefehl posten, mit dem Sie den Test starten? Vielleicht gibt es einen Unterschied in der Umgebung, in der die Befehlszeile gestartet wird, im Gegensatz zu der, die von der Instruments GUI-App verwendet wird. –

+0

Was ist die Xcode-Version? Ein ähnlicher Befehl scheint für mich in Xcode 4.5.2 zu funktionieren, wobei meine Build-Konfiguration auf Release und der iPhone 6.0-Simulator auf das Ziel gesetzt wurde. Vielleicht versuchen Sie Ihr Schema auf die Debug-Build-Konfiguration umzustellen, zu bauen, dann ersetzen Sie "Release-iphonesimulator" in Ihrem Instrumenten-Befehl mit "Debug-iphonesimulator"? –

Antwort

1

der Grund könnte sein, dass UIAutomation unter Instrumenten ist viel langsamer als bei der Ausführung von der Kommandozeile zu starten. So könnte es sein, dass unter instrumente das element target.frontMostApp(). MainWindow(). TableViews() [0] .cells() ["ID-Nummer, Erforderlich"]. TextFields() [0]
existiert, dh ist gültig, aber von der Konsole noch nicht.
Vielleicht sollten Sie versuchen, auf die Gültigkeit des Elements zu warten, bevor Sie eine Aktion ausführen, dessen Gültigkeit prüfen (isValid) und es protokollieren, um sich über seinen Status zu vergewissern.