7
votes

Vérifiez si un élément existe en protacteur

J'ai essayé d'utiliser l'extrait de code ci-dessous pour vérifier si l'élément que je cherche existe, mais tout ce que je reçois est "échoué: Aucun élément trouvé à l'aide du localisateur: par (sélecteur CSS, .icon-annulez)" . Ce que je veux que le programme fasse, c'est exécuter b () xxx


0 commentaires

3 Réponses :


13
votes

isdisplayed () code> échouerait si un élément n'existe pas réellement dans l'arbre DOM em>. Vous avez besoin du Ispresent () Code> Méthode à la place:

$('.icon-cancel').isPresent().then(function(result) {
    if ( result ) {
        a();
    } else {
        b();
    }
});


0 commentaires

0
votes

Une possibilité est que si l'élément est chargé de manière dynamique, l'élément peut ne pas avoir été chargé au moment de l'exécution de votre test. Donc, vous pouvez attendre quelques secondes pour que l'élément soit disponible. XXX


0 commentaires

0
votes

En utilisant ASYNC / Await, vous pouvez maintenant facilement à cela sans la chaîne de promesse:

it('should something something', async () => {
    const element = element(by.css('.icon-cancel'));
    if(await element.isPresent()) {
        // Element is found
    } else {
        // Element is not found
    }
});


0 commentaires