5

InstrumentsでUIAutomationスクリプトを実行すると、すべてが正常に機能しますが、コマンドラインからまったく同じスクリプトを実行すると、次のエラーが発生します。 Cannot perform action on invalid element: UIAElementNil from target.frontMostApp().mainWindow().tableViews()[0].cells()["ID number, Required"].textFields()[0]

これが私がテストを起動するために使用しているInstrumentsコマンドです

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 
4

1 に答える 1

1

その理由は、インスツルメントでの UIAutomation がコマンド ラインから実行した場合よりもはるかに遅いためです。したがって、instruments の下に、要素 target.frontMostApp().mainWindow().tableViews()[0].cells()["ID number, Required"].textFields()[0]
が存在する、つまり有効である可能性があります。しかし、コンソールからはまだです。
要素に対してアクションを実行する前に、要素が有効になるのを待って、その有効性 (isValid) を確認し、そのステータスを確認するためにログに記録する必要があります。

于 2013-01-30T13:10:32.130 に答える