2017-04-03 1 views
1

Il existe une page particulière avec un numéro - un lien vers une liste. Je veux pouvoir rechercher le compte. Si le compte est 0, alors ne faites rien, sinon cliquez sur le nombre pour ouvrir la liste. J'utilise la fonction isPresent() dans Protractor pour la rechercher.Vérification de la présence d'un élément dans Protractor

Mon code est

$('cda-e2e-softwareCountZero').isPresent().then(function(result) { 

if (result) { 
    // No Software  
} else { 
    element(by.id('cda-e2e-softwareCount')).click(); 
} 

}); 

Cependant, cela renvoie toujours l'erreur suivante

Erreur: Délai d'attente - rappel Async n'a pas été invoquée dans délai spécifié par jasmine.DEFAULT_TIMEOUT_INTERVAL.

Comment résoudre ce problème?

Edit:

Le code HTML pour le même est

<span class="panelHead"> 
          Softwares 
          <a ng-if="summaryMetaDataList.softwares.length != 0" 
           ng-href="/application/application/{{summaryMetaDataInfo.entityId || alternateText}}/software/list{{dateParamsUrl}}"> 
           <span style="text-decoration: none; color: black;">(</span><span class="textUnderlineBlue" id="cda-e2e-softwareCount">{{summaryMetaDataList.softwares.length}}</span><span style="text-decoration: none; color: black;">)</span> 
          </a> 
          <a ng-if="summaryMetaDataList.softwares.length == 0"> 
           <span style="color: black" id="cda-e2e-softwareCountZero">({{summaryMetaDataList.softwares.length}})</span> 
          </a> 
</span> 
+0

collez le code HTML. Il serait facile de vous aider –

+0

Ajouté le code HTML pour votre référence aussi – Sid

+1

Locator devrait aimer ce $ ('# cda-e2e-softwareCountZero'). Essayez avec ce localisateur –

Répondre

0

Augmenter le temps Jasmine sur fichier conf.js. Suivez le code ci-dessous

allScriptsTimeout: 60000, 

    jasmineNodeOpts: { 
    // Default time to wait in ms before a test fails. 
    defaultTimeoutInterval: 12000 
    }, 
+0

Ça a marché, merci! Mais je devais définir une valeur très élevée. Pourquoi cela prend-il autant de temps pour entrer dans le bloc else? – Sid

+0

votre application peut avoir beaucoup de demandes d'interrogation. cela rend l'exécution lente. Si votre solution fonctionne pour vous, cochez ma réponse –