Protractor: Erreur : Timeout - Le rappel asynchrone n'a pas été appelé dans le délai spécifié par jasmine.DEFAULT_TIMEOUT_INTERVAL

Créé le 19 févr. 2016  ·  26Commentaires  ·  Source: angular/protractor

j'utilise l'exemple de " http://www.protractortest.org/#/tutorial "

// spec.js
describe('Protractor Demo App', function() {
  it('should have a title', function() {
    browser.get('http://juliemr.github.io/protractor-demo/');

    expect(browser.getTitle()).toEqual('Super Calculator');
  });
});

// conf.js
exports.config = {
  framework: 'jasmine',
  seleniumAddress: 'http://localhost:4444/wd/hub',
  specs: ['spec.js']
}

Lancez maintenant le test avec

protractor conf.js

Puis la console affiche :
image

needs more info

Commentaire le plus utile

@sallojusuresh , la solution ci-dessous a fonctionné.
jasmineNodeOpts : {
defaultTimeoutInterval : 2500000
},
Question - Lorsque nous pouvons définir une heure par défaut comme ci-dessus, d'où vient l'utilisation de la fonction setTimeout dans 'beforeEach' et les rappels effectués dans 'it'. Une idée?

Tous les 26 commentaires

Vous pouvez trouver une solution dans le message ci-dessous : il suffit de parcourir tout le message.

https://github.com/angular/protractor/issues/2941#issuecomment -186104304

Êtes-vous capable de démarrer avec succès le sélénium ? Que se passe-t-il si vous utilisez directConnect ?

Fermeture des problèmes obsolètes.

J'ai le même problème et l'autre poste ne fonctionne pas pour moi.
@juliemr une solution pour cela? j'ai essayé allScriptsTimeout: 900000 mais cela ne résout pas le problème.

Ne fonctionne pas pour moi non plus. augmenter defaultTimeoutInterval ne le résout pas

@juliemr J'ai le même problème et l'augmentation de ScriptsTimeout ne fonctionne pas pour moi. Avez-vous une solution pour cela? Merci.

Salut tout le monde,

J'exécute un cas de test dans le rapporteur et j'obtiens une erreur de temporisation. Voici les détails. S'il vous plaît des conseils. Merci

Erreur : Timeout - Le rappel asynchrone n'a pas été appelé dans le délai spécifié par jasmine.DEFAULT_TIMEOUT_INTERVAL.

sample_spec.js

describe('Mcac App testing', function() {
navigateur.get('http://localhost:3000/integrated/monWeb.html');
avantChaque(fonction (terminé) {
window.jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000 ;
setTimeout(fonction () {
console.log('inside timeout');
Fini();
}, 50000);
});
//navigateur.get(' http://localhost:3000/integrated/myWeb.html');
// navigateur.get('http://localhost:3000/integrated/myWeb.html').then(function() {
it('Validation de l'adresse e-mail', fonction()
{

        element(by.model('ctrl.formData.emailAddress')).sendKeys('').clear();
        element(by.model('ctrl.formData.emailAddress')).sendKeys('[email protected]');
        element(by.model('ctrl.formData.emailAddress')).getAttribute('value').then(function (value) {
            expect(value).toEqual('[email protected]');
        });


}, 10000);

// element(by.xpath("//button[text()='Confirmer']")).click();
navigateur.sleep(5000);

});

config.js

// Un exemple de fichier de configuration.
exportations.config = {
connexion directe : vrai,

// Capacités à transmettre à l'instance webdriver.
capacités : {
'nom du navigateur' : 'chrome'
},

// Framework à utiliser. Le jasmin est recommandé.
trame: 'jasmin',

// Les modèles de spécification sont relatifs au répertoire de travail actuel lorsque
// le rapporteur est appelé.
// specs : ['example_spec.js'],
//spécifications : ['mcac_spec.js'],
//spécifications : ['mcac_spec_mobile.js'],
spécifications : ['mcac_online.js'],
// Options à passer à Jasmine.
jasmineNodeOpts : {
defaultTimeoutInterval : 5000
}

} ;

toute aide très appréciée.

J'ai eu ce problème et c'était à cause d'une répétition $timeout ( $timeout bloque le rapporteur, alors que $interval ne le fait pas).

Pour trouver le $timeout répété, vous pouvez utiliser l'explorateur d'éléments de Protractor, par exemple :

$ protractor config/protractor.js --elementExplorer
Starting debugger agent.
Debugger listening on port 5858
> var body = element(by.css('body'))
> body.isPresent()
ScriptTimeoutError: Timed out waiting for asynchronous Angular tasks to finish after 15 seconds. This may be because the current page is not an Angular application. Please see the FAQ for more details: https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angular
While waiting for element with locator - Locator: By(css selector, body). 
The following tasks were pending:
 - $timeout: function () {
        // ......
    }

Merci.

J'ai trouvé le problème. c'est à cause du chargement de l'url qui prend du temps et de la recherche
balise ng-app dans la page html.

meilleures salutations,
Narendra

Narendra... !

Le 15 décembre 2016 à 06h12, Amy Boyd [email protected] a écrit :

J'ai eu ce problème et c'était à cause d'une répétition $timeout ($timeout
bloque Protractor, tandis que $interval ne le fait pas).

Pour trouver le $timeout répété, vous pouvez utiliser l'explorateur d'éléments de Protractor,
par example:

$ rapporteur config/rapporteur.js --elementExplorer
Démarrage de l'agent de débogage.
Le débogueur écoute sur le port 5858

var corps = element(by.css('body'))
corps.isPresent()
ScriptTimeoutError : expiration du délai d'attente pour que les tâches angulaires asynchrones se terminent après 15 secondes. Cela peut être dû au fait que la page actuelle n'est pas une application angulaire. Veuillez consulter la FAQ pour plus de détails : https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting -for-angular
En attente d'élément avec localisateur - Localisateur : By(css selector, body).
Les tâches suivantes étaient en attente :

  • $timeout : fonction () {
    // ......
    }


Vous recevez ceci parce que vous avez commenté.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/angular/protractor/issues/2963#issuecomment-267302567 ,
ou couper le fil
https://github.com/notifications/unsubscribe-auth/AViSFkiN29oWnH6AJ0P_wNY_LNzE2fglks5rISCYgaJpZM4Hd20v
.

Salut tout le monde,

J'exécute un cas de test dans le rapporteur et j'obtiens une erreur de temporisation. Voici les détails. S'il vous plaît des conseils. Merci

Échec : expiration du délai d'attente pour que les tâches angulaires asynchrones se terminent après 30 secondes. Cela peut être dû au fait que la page actuelle n'est pas une application angulaire.

@sallojusuresh , la solution ci-dessous a fonctionné.
jasmineNodeOpts : {
defaultTimeoutInterval : 2500000
},
Question - Lorsque nous pouvons définir une heure par défaut comme ci-dessus, d'où vient l'utilisation de la fonction setTimeout dans 'beforeEach' et les rappels effectués dans 'it'. Une idée?

j'ai fixé de la manière suivante

 var originalTimeout;

    beforeEach(function() {
        originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
        jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000;
    });

    afterEach(function() {
      jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
    });

Merci.

Narendra... !

Le 11 mars 2018 à 23h53, Md. Zahirul Haque [email protected]
a écrit:

j'ai fixé de la manière suivante

` var originalTimeout ;

avantChaque(fonction() {
originalTimeout = jasmin.DEFAULT_TIMEOUT_INTERVAL ;
jasmin.DEFAULT_TIMEOUT_INTERVAL = 10000 ;
});

aprèsChaque(fonction() {
jasmin.DEFAULT_TIMEOUT_INTERVAL = originalTimeout ;
});`


Vous recevez ceci parce que vous avez commenté.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/angular/protractor/issues/2963#issuecomment-372187210 ,
ou couper le fil
https://github.com/notifications/unsubscribe-auth/AViSFg7ITAW3XW5zky_-QXXmAudt11qDks5tdfE1gaJpZM4Hd20v
.

@NickTomlin Vous venez de faire ma journée :) J'ai utilisé la connexion directe et travaillé. Ce serait formidable si vous mettiez en lumière ce que fait réellement DirectConnect

Dans mon cas, cette erreur a été causée par une mauvaise utilisation de "fixture.detectChanges()" Il semble que cette méthode soit un écouteur d'événement (async) qui ne répondra qu'un rappel lorsque des modifications sont détectées. Si aucune modification n'est détectée, il n'invoquera pas le rappel, ce qui entraînera une erreur de délai d'attente. J'espère que cela t'aides :)

@juliemr Timeout - Le rappel asynchrone n'a pas été invoqué dans le délai spécifié par jasmine.DEFAULT_TIMEOUT_INTERVAL. cette erreur venant dans mon test encore une fois j'ai utilisé avant chaque, après chaque, browser.sleep, a augmenté l'intervalle de temps d'expiration du jasmin jusqu'à 100000. mais mon code n'est pas exécuté alors s'il vous plaît suggérez-moi ce que je pourrais faire.

J'ai eu ce problème et je ne peux pas résoudre tout en augmentant le délai d'expiration du jasmin jusqu'à 300 000. Alors, veuillez me suggérer ce que je dois faire pour cela.

Pourriez-vous donner un exemple simple ?

La solution à cela est, si vous essayez d'écrire des tests pour une application non angulaire, allez à runner.js à node_modules/protractor/built
Modifiez la ligne # 210 en waitForAngularEnabled : false //true

@juliemr une suggestion pour rendre ce paramètre configurable.

vous pouvez le faire dans la section onPrepare() :

onPrepare: async () => {
    await browser.waitForAngularEnabled(false);
    ....
}

J'ai eu le même problème, mais les solutions fournies ici n'ont pas fonctionné pour moi. Si vous avez le temps, veuillez consulter ma question sur Stack Overflow. Le problème peut facilement être reproduit et j'ai un repo. Je suppose que c'est possible un bug.
https://stackoverflow.com/questions/53786401/error-debugging-protractor-with-node-8-async-await-and-angular-6

Faux égal à vrai attendu Parce que : les journaux d'erreurs sont présents dans la console : Entrée {
level : Niveau { name_ : 'SEVERE', value_: 1000 },
message:
"ERROR" Erreur : formGroup attend une instance de FormGroup. Veuillez en transmettre une.\n\n Exemple :\n\n \n

\n \n
\n\n Dans votre classe :\n\n this.myGroup = new FormGroup({\n firstName : new FormControl()\n });\n at Function.e.missingFormException

vous rencontrez un problème en cliquant sur le bouton contextuel, une solution ?

J'ai un problème similaire avec post et j'ai résolu mon problème en ajoutant HttpClientModule sur les importations :

avantChaque(() => {

TestBed.configureTestingModule({

    declarations: [],

    providers: [ CookieService, HttpClient],  

    imports: [HttpClientModule],
});

});

J'ai un problème similaire avec post et j'ai résolu mon problème en ajoutant HttpClientModule sur les importations :

avantChaque(() => {

TestBed.configureTestingModule({

    declarations: [],

    providers: [ CookieService, HttpClient],  

    imports: [HttpClientModule],
});

});

J'ai personnellement eu des problèmes pour importer le HttpClientModule dans un banc d'essai. Il essaie d'exécuter vos API dans vos tests unitaires et, par conséquent, ils échouent. La bonne approche serait d'utiliser HttpClientTestingModule

@sallojusuresh , la solution ci-dessous a fonctionné.
jasmineNodeOpts : {
defaultTimeoutInterval : 2500000
},
Question - Lorsque nous pouvons définir une heure par défaut comme ci-dessus, d'où vient l'utilisation de la fonction setTimeout dans 'beforeEach' et les rappels effectués dans 'it'. Une idée?

C'est la meilleure solution, collez simplement ce morceau de code dans votre fichier de configuration, cela devrait résoudre votre problème.

Cette page vous a été utile?
0 / 5 - 0 notes