我正在尝试通过 iPhone 模拟器和最新的 iOS SDK 4.1 在 Instruments 中使用 UIAutomation。这是有问题的javascript片段:
// there are sufficient delays here to make sure the view is loaded
UIATarget.localTarget().frontMostApp().logElementTree();
main.buttons()["theButton"].tap();
UIALogger.logMessage("The button tapped");
for (var b = 0; b < main.buttons().length; b++)
{
UIALogger.logMessage("Button title: " + main.buttons()[b].name());
}
main.toolbar().buttons()["OK"].tap();
UIALogger.logMessage("OK tapped");
“theButton”的按钮名称显示在 logElementTree 中,并在我记录所有按钮的名称时显示,因此它在 Interface Builder 中正确配置,但由于某种原因,它没有被点击。我在脚本前面有其他按钮可以很好地点击,如果我在未点击的按钮处中止脚本,我可以点击模拟器中的按钮,它会按预期工作。
编辑:在上面显示的 javascript for 循环中,我让它点击 main.buttons() 数组中的每个按钮,并且视图上的 12 个相同按钮中只有 1 个被点击。
另外,如果您想知道,我在 javascript 文件的顶部有以下代码:
var target = UIATarget.localTarget();
var app = target.frontMostApp();
var main = app.mainWindow();
这是显示 logElementTree 放入日志消息的条目序列中的按钮信息的行:
4) UIAButton [name:theButton value:(null) NSRect: {{25, 93}, {74, 74}}]