2017-10-15 6 views
0

J'ai du mal à identifier comment je peux dire que le MKMapView montre la broche actuelle d'emplacement d'utilisateur dans un test d'interface utilisateur. Ceci est une annotation MKUserLocation (et j'ai créé un MKAnnotationView pour utiliser une image pour la broche au lieu du point bleu.)Dans iOS Test de l'interface utilisateur, comment identifier l'annotation MKUserLocation?

Le débogage m'indique que l'instance d'annotation MKUserLocation a un titre de "Ma position". Je m'attendais que ce qui suit fonctionnerait:

app.maps.element.otherElements["My Location"] 

le retournerait mais [ce code] .exists renvoie false. Impression debugDescription d'autresElements répertorie un ensemble d'annotations sur la carte, mais pas l'emplacement de l'utilisateur.

Existe-t-il un type différent de XCUIElement qui représente la vue de broche/annotation/annotation que je peux vérifier?

Répondre

1

Utilisez les étiquettes d'accessibilité pour accéder à votre MKAnnotationView. Dans votre code, récupérer votre emplacement de l'utilisateur annotation et définir une étiquette d'accessibilité pour elle:

yourAnnotation.accessibilityLabel = "labelYouWillUseToFindIt" 

Ensuite, lors de vos tests que vous pouvez faire:

app.maps.element.otherElements["labelYouWillUseToFindIt"] 

Utilisez print(app.debugDescription) pour voir si l'annotation est visible et sinon, le forcer à être accessible avec:

yourAnnotation.isAccessibilityElement = true 

Vous pouvez en savoir plus sur l'accessibilité des étiquettes here

+0

Merci Javier. Je pourrais réellement le voir dans la description de débogage une fois que j'ai ajouté l'étiquette d'accessibilité à la vue d'annotation. Il était en réalité récupérable via app.otherElements ["Current Location"] plutôt que via app.maps .... –