web-dev-qa-db-fra.com

xcode: erreur de correspondance d'événement horodaté: impossible de trouver l'élément correspondant

J'essaie d'enregistrer certaines fonctions XCUITesting. Je reçois cette erreur.

Timestamped Event Matching Error: Failed to find matching element

Est-ce un bug Xcode et/ou des problèmes avec la complexité de mon interface utilisateur?

42
emoleumassi

J'ai eu le même problème pendant longtemps sur une application très complexe: la clé est dans isAccessibilityElement étant définie sur OUI. Les tests d'interface utilisateur et l'accessibilité vont de pair. Selon moi, l'appareil doit pouvoir interagir avec l'élément, car l'utilisateur ne le pourrait apparemment pas. 

Je l'ai fait deux fois:

  1. Dans cellForRowAtIndexPath - cell.isAccessibilityElement = YES

  2. Dans awakeFromNib dans une UITableViewCell sous-classe - self.isAccessibilityElement = YES

En espérant que ça aide et bonne chance!

5
ArielSD

Essayez de manipuler les éléments avec la propriété isAccessibilityElement. Pour autant que je sache, les conteneurs tels que tableView devraient avoir cette propriété définie sur NO afin que les éléments contenus à l'intérieur soient accessibles.

Citation de https://developer.Apple.com/library/ios/documentation/UIKit/Reference/UIAccessibility_Protocol/#//Apple_ref/occ/instp/NSObject/isAccessibilityElement :

Les applications d'assistance ne peuvent obtenir des informations que sur les objets qui sont représentés par des éléments d'accessibilité. Par conséquent, si vous implémentez un contrôle personnalisé ou vue qui devrait être accessible aux utilisateurs avec handicaps, définissez cette propriété sur YES. La seule exception à cela la pratique est une vue qui sert simplement de conteneur pour d'autres articles cela devrait être accessible.

1
Kamilton

Vous devez ajouter une valeur de chemin de clé à vos éléments d'interface utilisateur, comme indiqué ci-dessous. Par exemple, si vous utilisez une tableview, sélectionnez-la dans le Storyboard puis cliquez sur Identity Inspector. Maintenant, entrez la valeur isAccessibilityElement suivante dans la clé et cochez la case comme indiqué dans l'image ci-dessous. 

 enter image description here

De même, si vous ne pouvez pas utiliser UITableViewCell ou les sous-classes, activez l'option Accessibilité comme indiqué ci-dessous.

 enter image description here

ci-après cela devrait fonctionner parfaitement. 

0
Jay Mayu