KIF:有没有办法在当前屏幕中获取所有可访问性标签?

lmi*_*asf 5 kif-framework kif

我正在使用 KIF 来测试 iOS 应用程序,我想知道是否有办法在当前屏幕中获取所有辅助功能标签。我想获得一个字符串数组,其中每个元素都是此屏幕具有的可访问性标签。

Bil*_*han 6

这个函数可以返回视图中的所有accessibilityLabel:

func getAllAccessibilityLabel(_ viewRoot: UIView) -> [String]! {

    var array = [String]()
    for view in viewRoot.subviews {
        if let lbl = view.accessibilityLabel {
            array += [lbl]
        }

        array += getAllAccessibilityLabel(view)
    }

    return array
}

func getAllAccessibilityLabelInWindows() -> [String]! {
    var labelArray = [String]()
    for  window in UIApplication.shared.windows {
        labelArray += self.getAllAccessibilityLabel(window)
    }

    return labelArray
}
Run Code Online (Sandbox Code Playgroud)

并在 KIF 测试中调用它:

let labelArray = getAllAccessibilityLabelInWindows()
print("labelArray = \(labelArray)")
Run Code Online (Sandbox Code Playgroud)