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

I am using KIF to test an iOS application and I would like to know if there is a way to get all the accessibility labels on the current screen. I would like to get an array of strings where each item is the accessibility labels that are on this screen.

+3


source to share


1 answer


This function can return all the availability of the Label in the view:

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
}

      



And call it in your KIF test:

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

      

+2


source







All Articles