Ci sono domande simili (collegate sotto) ma nessuna risolve questo problema. Sto scrivendo i test dei goniometri per un progetto Ionic. Ho bisogno di eseguire test nei momenti in cui appare una finestra di dialogo di caricamento ionico che scompare.In attesa di finestre di dialogo di caricamento ionico con il rapportatore
Ho creato un repository con le ossa nude dell'app e i test che devono essere eseguiti. Risolvilo e risolvi il problema (descrivo il problema sotto): https://github.com/TmanTman/StackoverflowQ. Basta adattare il percorso al tuo Chrome per il tuo sistema in conf.js.
Per simulare un dialogo Caricamento ionico asincrono Ho appena aggiungi a al controller in un progetto ionico vuoto:
$interval(function() {
$ionicLoading.show({
template: 'Async ionicLoading',
duration: 5000
});
}, 5000 , 1);
})
ho bisogno di ottenere goniometro per attendere che venga visualizzata la finestra di dialogo, fare qualche test, attendere la finestra di dialogo scomparirà, quindi eseguirà altri test. Il mio ultimo tentativo nel mio file di test è:
it('should only test when ionicLoading appears', function() {
browser.wait(function(){
return element(by.css('.loading-container.visible.active')).isPresent();
}, 10000);
var ionicLoadingText = element(by.css('.loading-container.visible.active')).getText();
expect(ionicLoadingText).toEqual('Async IonicLoading');
})
it('should only test once ionicLoading disappears', function() {
browser.wait(function() {
var deferred = protractor.promise.defer();
var q = element(by.css('.loading-container.visible.active')).isPresent()
q.then(function (isPresent) {
deferred.fulfill(!isPresent);
});
return deferred.promise;
});
expect(1).toEqual(1);
})
sto cercando di evitare di utilizzare la funzione sleep sincrona, come il mio codice è altamente asincrono. Ho provato innumerevoli variazioni ma non riesco a farlo funzionare. Link che ho usato per info comprende:
- Protractor blocking wait
- Asynchronous Testing with Protractor's ControlFlow
- Protractor wait for isElementPresent and click on waited element fails
Quali errori hai? L'aspettativa nel primo blocco viene eseguita prima della visualizzazione della finestra di dialogo o c'è un errore di timeout? – Dziamid
Errore di timeout sul primo blocco: "Non riuscito: attesa scaduta dopo 10472 ms". –