1
votes

Erreur du rapporteur - Erreur: dépassement du délai de 2000 ms. Pour les tests asynchrones et les hooks, assurez-vous que "done ()" est appelé; si vous retournez une promesse, assurez-vous qu'elle se résout

J'apprends le rapporteur mais je rencontre un problème avec une erreur "Promise". J'ai lu Test de moka avec promesses: Erreur: dépassement du délai de 2000 ms et https://github.com/angular/protractor/blob/master/docs/control -flow.md # désactiver-le-flux de contrôle mais je suis toujours coincé dans ce code simple.

En gros, si j'ajoute la ligne element (by.css (gotograb_css)). click ();

Il y aura une erreur Erreur: dépassement du délai de 2000 ms. Pour les tests asynchrones et les hooks, assurez-vous que "done ()" est appelé; si vous renvoyez une promesse, assurez-vous qu'elle se résout.

Est-ce que j'ajoute un .then () après cela? Je l'ai essayé et l'erreur est toujours là même avec done () à la fin du script.

Mon cadre de test dans config.js pour rapporteur est mochai

Contexte L'élément css est correct car je peux l'exécuter dans Selenium / Java.

  1. J'essaye ça
var title_css = "h1[ng-bind='::$ctrl.primaryText']";
var gotograb_css = "a[ng-bind='::$ctrl.linkoutText']";

  it("testing site", ()=> {

    browser.get('https://www.eat24.com/');

    let EC = protractor.ExpectedConditions; // 
    let title_element = element(by.css(title_css)); 
    let condition = EC.presenceOf(title_element);
    browser.wait(condition, 30000)
    element(by.css(gotograb_css)).click(); //ERROR 

  })

Cela ne fonctionne pas non plus. Même erreur

it("testing site", (done)=> {

 .......
   done();
})


0 commentaires

3 Réponses :


0
votes

Je pense que le problème est que la fonction browser.wait n'est pas résolue.
Essayez ceci:

    let condition = EC.presenceOf(title_element);
    return browser.wait(condition, 30000)
        .then(function () {
            return element(by.css(gotograb_css)).click();
        });        


0 commentaires

0
votes

Il semble que le délai d'expiration global soit défini sur 2000 ms dans votre configuration.

Et ce qui se passe, c'est que vous essayez d'attendre jusqu'à 30 secondes, ce qui est évidemment plus que votre délai d'attente global.

Alors ouvrez simplement la configuration et voyez si c'est le cas


1 commentaires

J'ai ajouté le délai ici. Le problème n'est pas celui-ci. Merci



0
votes

Si vous travaillez avec mocha, vous devrez probablement désactiver le délai d'expiration en ajoutant au fichier de configuration quelque chose comme ceci:

  mochaOpts: {
    enableTimeouts: false
  },


0 commentaires