SwiftUI无障碍ID无法被自动化测试框架访问的问题咨询
SwiftUI无障碍ID无法被自动化测试框架访问的问题咨询
各位开发者好,我最近在开发一款iOS应用时碰到了个关于无障碍测试的问题,折腾了好一阵没搞定,想过来请教下大家的经验:
我当前的场景是把一个SwiftUI View嵌入到了UIKit的Storyboard容器里,这个SwiftUI View负责展示支付工具选择菜单,用ForEach循环渲染每一行选项,核心代码大概是这样的:
ForEach(self.paymentToolsVM.paymentToolsItems, id: \.self) { paymentTool in Button { navigationCallback(paymentTool.segueID) } label: { PaymentToolsRow(paymentToolName: paymentTool.title, imageName: paymentTool.imageName) .accessibilityIdentifier(paymentTool.id) } }
我的需求是让自动化测试框架能识别到每一行支付工具对应的无障碍ID,但不管我把accessibilityIdentifier绑定在PaymentToolsRow组件上,还是直接移到外层的Button上,测试框架都找不到对应的ID。我也检查过嵌入SwiftUI的UIKit容器ViewController,确认它的无障碍开关是正常开启的,没有禁用,但问题还是没解决。
有没有朋友遇到过类似的情况?或者知道怎么调整才能让嵌入在UIKit环境里的SwiftUI组件的无障碍ID被测试框架正常识别到?
内容来源于stack exchange




