在iPhone应用程序中使用UIAutomation搜索主视图上的元素非常慢

时间:2010-11-18 04:19:12

标签: iphone ios instruments ios-ui-automation

当我使用for循环时,调用UIATarget.localTarget()。frontMostApp()。mainWindow()。elements();要搜索主视图上的特定元素,它运行速度非常慢。有没有人遇到过这个问题呢?如果是这样,任何建议

2 个答案:

答案 0 :(得分:8)

我遇到了同样的问题,经过一些研究后,我发现UI Automation会在调用myElement.elements()[i]时等待,因为元素尚不可访问。因此,如果你想减少这个延迟,你应该在堆栈上推送一个新的超时值,然后像这样弹出它:

UIATarget.localTarget().pushTimeout(0);
...
UIATarget.localTarget().popTimeout();

或简单地说:

UIATarget.localTarget().setTimeout(0);

来源: http://developer.apple.com/library/ios/#documentation/ToolsLanguages/Reference/UIATargetClassReference/UIATargetClass/UIATargetClass.html

答案 1 :(得分:1)

我不久前开始学习这种乐器,我认为你可以尝试使用它:

button = UAITarget.localTarget().frontMostApplication().mainWindow().tableView()[0].scrollToElementWithPredicate("name beginswith "Your Specific Element Name");

其中tableView是主窗口视图列表的层次结构,它将包含您的按钮以及您为其指定的特定名称。

如果你找到了自己的方式,也请发表你的答案。