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

KIF: is there a way to get all the accessibility labels in a current screen?

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

此函数可以return视图中的所有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
}

并在KIF测试中调用:

let labelArray = getAllAccessibilityLabelInWindows()
print("labelArray = \(labelArray)")