web-dev-qa-db-fra.com

UI Testing Xcode 7- ne peut pas accéder à l'élément dans la sous-vue

J'essaie d'accéder à un élément dans une sous-vue et je trouve qu'il est impossible de le faire.

La hiérarchie étant:

Contrôleur de vue:

  • Vue
    • tempView
    • userEnterView
      • zipCodeEntered

Je souhaite accéder au champ de texte zipCodeEntered. J'ai une étiquette d'accessibilité nommée "zipCodeEntered". 

Lorsque j'essaie d'enregistrer l'automatisation, elle n'enregistre que la vue d'ensemble "userEnterView" et non le champ de texte réel dans lequel je peux puiser. 

J'imprime "app.otherElements [SUPER_VIEW_NAME] .debugDescription" pour voir quels éléments se trouvent dans cette hiérarchie et n'en affiche aucun. 

Avez-vous des idées sur les raisons pour lesquelles je ne peux pas accéder à ces éléments/comment y accéder?  enter image description here

18
sebradloff

Les sous-vues ne sont pas accessibles car la vue parent n'est pas une vue conteneur. De la section Rendre votre application iOS accessible du Guide de programmation d'accessibilité:

Du point de vue de l'accessibilité, une vue personnalisée est une vue individuelle ou une vue conteneur. Une vue individuelle ne contient aucune autre vue devant être accessible.

Une vue conteneur, par contre, contient d'autres éléments avec lesquels les utilisateurs peuvent interagir.

Pour rendre les sous-vues accessibles, la vue parente doit indiquer à UIAccessibility qu'il s'agit d'un conteneur d'accessibilité en renvoyant NO depuis -isAccessibilityElement et en implémentant les méthodes du protocole UIAccessibilityContainer.

27
quellish

La chose qui a résolu le problème pour moi était de cocher la case "Accessibilité" pour l'activer dans Interface Builder. 

 enter image description here

Si vous ne travaillez pas dans IB, essayez de définir la propriété isAccessibilityElement de la vue sur true. 

J'espère que cela pourra aider!

0
Patrick Ridd