ios - 从 accessibilityLabel 获取 UIVIew 用于 KIF 自动化

标签 ios uiview accessibility kif-framework kif

我正在使用 KIF Framework用于功能性 UI 测试。假设我在当前的 iPad 屏幕上,其中许多 View (标签、按钮、文本字段等)都分配了唯一的辅助功能标签。如果手边有 accessibilityLabel 字符串,我可以使用它从当前屏幕获取对关联的 UIView 的引用吗?

例如,[[UIView alloc] viewWithTag:5] 返回提供的 tagUIVIew。我正在寻找类似 [[UIView alloc] viewWithAccessiblityLabel:@"my label"] 的内容。

P.S:我知道蛮力方法是递归地迭代 self.subviews 中的所有 View ,并比较可访问性标签以找到我要搜索的内容。我正在寻找更好的方法。

最佳答案

在使用 KIF 进行 UI 自动化时,实际上有一种非常简单的方法可以实现您所描述的内容,尽管 KIF 并未明确表明这是可能的。 waitForViewWithAccessibilityLabel 在找到 View 时返回对 View 的引用:

swift

 let view = tester().waitForView(WithAccessibilityLabel: "My label")

objective-C

UIView *view = [tester waitForViewWithAccessibilityLabel:@"My label"];

非常有用,一旦被发现。

关于ios - 从 accessibilityLabel 获取 UIVIew 用于 KIF 自动化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16485832/

相关文章:

ios - Xcode 8.2.1 Accessibility Inspector 不适用于 iOS 9 设备

ios - 如何从字符串中识别 UTF-8 编码的文本并将其转换为 Swift 中的笑脸\表情符号

ios - animateWithDuration setFrame 不工作

ios - 辅助功能标识符未保留在界面生成器中

forms - 我的表格是否放置在可访问的表格中?

ios - UIViewController透明背景

ios - 在 Swift 中使用 DKImagePickerController 进行多图像选择

iphone - 向 UIScrollview 添加 View

iphone - UIView 辅助功能问题

android - fragment 如何在 Android Talkback 中启动时宣布自己?