当我在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
答案 0 :(得分:1)
原因可能是仪器下的UIAutomation比从命令行运行要慢得多。所以可能是在仪器下面的元素target.frontMostApp()。mainWindow()。tableViews()[0] .cells()[“ID number,Required”]。textFields()[0]
存在,即有效,但尚未从控制台存在。
也许您应该尝试等待元素在对其执行操作之前变为有效,检查其有效性(isValid)并记录它以确定其状态。