我注意到我不久前编写的 UIAutomation 脚本中有一些奇怪的行为,而我有一段时间没有运行过。我的断言失败了;在做了一些挖掘之后,我看到在迭代 UIAElement 时.elements()
,子元素似乎不等于它们自己。
这在过去对我来说很有效,但似乎至少在 XCode 4.3.2 中被破坏了
重现:
- 创建单视图应用
- 在视图中抛出一些元素,在元素上设置辅助功能标签,以便它们被 UIAutomation 拾取
在 UIAutomation 中运行以下脚本:
var elements = UIATarget.localTarget().frontMostApp().mainWindow().elements(); for (var i = 0; i < elements.length; i++) { var el1 = elements[i]; var el2 = elements[i]; var equals = (el1 == el2); UIALogger.logMessage(el1.label() + " is equal to " + el2.label() + " ? " + equals); }
- 看到这一点
el1
并且el2
似乎没有引用同一个对象。
我不确定这是否是预期的行为,尽管这对我来说似乎很离谱。如果有人有任何见解,我将不胜感激。