最近很多团队都在接入移动端的 UI 自动化,相信大家在使用过程中一个很大的困惑就是如何定位页面上的一个控件,从最大化降低自动化的维护成本上考虑,我们希望这个控件 id 是唯一的,相对稳定的,对于安卓 app 来讲,很多控件是带有 resource-id 的,这个是因为开发同学在使用过程中同样需要这个 id 去定位元素,但是对于 iOS 应用,这个问题是比较头疼的,因为不管是 Macaca 底层所依赖的 XCUITest,还是 Appium 所依赖的 UIAutomation,都是通过 accessibilityIdentifier 来定位元素,但是在 iOS 开发中,基本没有开发同学会去设置这个 id,因此造成一个现状是对于 iOS 应用的元素定位,大家需要变换多种策略,比如通过 class,name,xpath 等等其他属性来获取,如果能给 iOS 上的控件设置 id, 将能大大的方便 UI 自动化的工作,更进一步,如果这个添加的过程能自动化实现,而不需要开发同学手工添加,就更加事半功倍了。这篇文章便是对这一策略的实践。