5

Quando eseguo uno script UIAutomation in Strumenti, tutto funziona bene, ma quando ho eseguito lo stesso script esatto dalla riga di comando, ottengo questo errore: Cannot perform action on invalid element: UIAElementNil from target.frontMostApp().mainWindow().tableViews()[0].cells()["ID number, Required"].textFields()[0]UIAutomation - risultati diversi da Strumenti e riga di comando

Ecco strumenti comando sto usando per lanciare il 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

Puoi pubblicare il comando strumenti che stai utilizzando per avviare il test? Forse c'è una differenza di qualche tipo nell'ambiente che la linea di comando sta lanciando rispetto a quella utilizzata dall'app della GUI di Instruments. –

+0

Qual è la versione Xcode? Un comando simile sembra funzionare per me in Xcode 4.5.2, con la configurazione di build impostata su Release e il simulatore di iPhone 6.0 come destinazione. Forse provate a cambiare lo schema con la configurazione di build di Debug, compilate, quindi sostituite "Release-iphonesimulator" nel comando dello strumento con "Debug-iphonesimulator"? –

risposta

1

il motivo potrebbe essere che UIAutomation nel quadro degli strumenti è molto più lento rispetto a quando eseguito da linea di comando. Quindi potrebbe essere che sotto strumenti l'elemento target.frontMostApp(). MainWindow(). TableViews() [0] .cells() ["ID numero, obbligatorio"]. TextFields() [0]
esiste, cioè è valido, ma dalla console non ancora.
Forse dovresti provare ad aspettare che l'elemento diventi valido, prima di eseguire un'azione su di esso, di controllarne la validità (isValid) e registrarlo per essere sicuro del suo stato.

Problemi correlati