Après avoir construit mon application dans Xcode 11 et exécuté ma suite de XCUITests, je reçois de nombreux échecs aléatoires avec les éléments suivants.
Échec d'obtention des instantanés correspondants: erreur lors de l'obtention de la fenêtre principale kAXErrorServerNotFound
Peu importe combien de temps j'augmente les délais, les problèmes apparaissent par intermittence. Il semble y avoir des problèmes de capture instantanée de la hiérarchie de l'interface utilisateur. Nos tests passent régulièrement dans Xcode 10.
J'ai réinstallé Xcode. Supprimé tous les simulateurs. Données dérivées effacées. Délais d'attente modifiés. Mise à niveau de Xcode 11.1 vers Xcode 11.2.1.
Merci!
Réponses:
J'ai eu le problème avec la correspondance pendant que j'utilisais le simple UITest dans Xcode 11.3. Pour que ça marche, je devais d'abord coller:
XCUIApplication().activate()
ouXCUIApplication().launch()
.la source
J'ai rencontré le même problème avec Xcode 11 et j'ai réalisé que le lanceur de test ne se faisait pas tuer lors de l'arrêt des tests (ou si le test s'est écrasé pour une raison quelconque). Exécuter les tests une deuxième fois engendrerait un nouveau lanceur de test et à ce moment-là, j'avais deux coureurs essayant d'interagir avec la même application, conduisant à cette erreur très étrange.
Pour prouver que j'ai fait ce qui suit:
La solution de contournement consistait à quitter et à rouvrir le simulateur pour vous assurer que tous les processus étaient interrompus. J'espère que cela résout vos problèmes
la source
killall "Simulator" 2> /dev/null; xcrun simctl erase all
, ou si vous utilisez Fastlane, il existe des options de scan pour réinitialiser le simulateur.J'utilise différentes machines. Mes anciens Mac rencontrent cette erreur beaucoup plus souvent. Je suppose que les anciens mac n'ont pas la mémoire requise pour exécuter correctement certains XCUITests.
la source
Je rencontre de temps en temps le problème dans Xcode 11.1. J'ai observé que le problème se produit lors de l'attente d'éléments d'interface utilisateur, en particulier lorsque la vue Web est affichée pendant le test. Lorsque le problème s'est produit, j'utilisais
XCUIElement.waitForExistence(timeout:)
ou j'attendais avecNSPredicate(format: "exists == true")
. Quand j'ai changé pour utiliser l'attente,NSPredicate(format: "hittable == true")
le problème semble avoir disparu, mais je ne sais pas pourquoi. La différence entre les 2 attributs est quehittable
seuls les éléments à l'écran sontexists
détectés tandis que les éléments hors écran tels que les cellules hors écran d'une vue de tableau sont détectés.la source
J'ai eu un problème similaire sur Xcode 11.
Il s'est avéré qu'avant il était permis d'avoir le même identifiant d'accessibilité sur plusieurs pages.
Mais maintenant, en utilisant le nouveau style de présentation modale, vous devez utiliser différents identifiants dans vos pages pour éviter les conflits.
la source