Protractor: Error: Tiempo de espera: la devolución de llamada asíncrona no se invocó dentro del tiempo de espera especificado por jasmine.DEFAULT_TIMEOUT_INTERVAL

Creado en 19 feb. 2016  ·  26Comentarios  ·  Fuente: angular/protractor

utilizo el ejemplo 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']
}

Ahora haz la prueba con

protractor conf.js

Luego la pantalla de la consola:
image

needs more info

Comentario más útil

@sallojusuresh , la siguiente solución funcionó.
jasmineNodeOpts: {
intervalo de tiempo de espera predeterminado: 2500000
},
Pregunta: cuando podemos establecer un tiempo predeterminado como el anterior, ¿de dónde viene el uso de la función setTimeout en 'beforeEach' y las devoluciones de llamada en 'it'? ¿Alguna idea?

Todos 26 comentarios

Puede encontrar la solución en la publicación a continuación: simplemente revise toda la publicación.

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

¿Eres capaz de iniciar con éxito el selenio? ¿Qué pasa si usas directConnect ?

Cierre de problemas obsoletos.

Tengo el mismo problema y la otra publicación no me funciona.
@juliemr alguna solución para esto? probé allScriptsTimeout: 900000 pero esto no resuelve el problema.

A mi tampoco me funciona. aumentar defaultTimeoutInterval no lo resuelve

@juliemr Tengo el mismo problema y no me funciona aumentar ScriptsTimeout. ¿Tienes alguna solución para esto? Gracias.

Hola a todos,

Estoy ejecutando un caso de prueba en el transportador obteniendo un error de tiempo de espera. Aquí están los detalles. Por favor aconséjame. Gracias

Error: Tiempo de espera: la devolución de llamada asíncrona no se invocó dentro del tiempo de espera especificado por jasmine.DEFAULT_TIMEOUT_INTERVAL.

ejemplo_spec.js

describe('Prueba de la aplicación Mcac', function() {
browser.get('http://localhost:3000/integrated/myWeb.html');
beforeEach(función (hecha) {
ventana.jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000;
establecerTiempo de espera (función () {
console.log('tiempo de espera interno');
hecho();
}, 50000);
});
//navegador.get(' http://localhost:3000/integrated/myWeb.html');
// browser.get('http://localhost:3000/integrated/myWeb.html').then(function() {
it('Validación de dirección de correo electrónico', function()
{

        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);

// elemento(by.xpath("//boton[texto()='Confirmar']")).click();
navegador.dormir(5000);

});

config.js

// Un archivo de configuración de ejemplo.
exportaciones.config = {
DirectConnect: verdadero,

// Capacidades que se pasarán a la instancia de webdriver.
capacidades: {
'nombre del navegador': 'cromo'
},

// Framework a utilizar. Se recomienda el jazmín.
marco: 'jazmín',

// Los patrones de especificación son relativos al directorio de trabajo actual cuando
// se llama al transportador.
// especificaciones: ['example_spec.js'],
//especificaciones: ['mcac_spec.js'],
//especificaciones: ['mcac_spec_mobile.js'],
especificaciones: ['mcac_online.js'],
// Opciones para pasar a Jasmine.
jasmineNodeOpts: {
intervalo de tiempo de espera predeterminado: 5000
}

};

cualquier ayuda muy apreciada.

Tuve este problema y fue debido a la repetición $timeout ( $timeout bloquea el transportador, mientras que $interval no lo hace).

Para encontrar el tiempo de espera repetido de $, puede usar el explorador de elementos de Protractor, por ejemplo:

$ 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 () {
        // ......
    }

Gracias.

Encontré el problema. es debido a que la carga de URL lleva tiempo y busca
etiqueta ng-app en la página html.

atentamente,
Narendra

Narendra...!

El 15 de diciembre de 2016 a las 06:12, Amy Boyd [email protected] escribió:

Tuve este problema y fue debido a un $tiempo de espera repetido ($tiempo de espera
bloquea Transportador, mientras que $intervalo no lo hace).

Para encontrar el tiempo de espera de $ repetido, puede usar el explorador de elementos de Protractor,
por ejemplo:

$ transportador config/transportador.js --elementExplorer
Iniciando el agente del depurador.
Depurador escuchando en el puerto 5858

var cuerpo = elemento(by.css('cuerpo'))
cuerpo.isPresent()
ScriptTimeoutError: se agotó el tiempo de espera para que finalicen las tareas angulares asincrónicas después de 15 segundos. Esto puede deberse a que la página actual no es una aplicación de Angular. Consulte las preguntas frecuentes para obtener más detalles: https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting -for-angular
Mientras espera el elemento con el localizador - Localizador: Por (selector css, cuerpo).
Quedaron pendientes las siguientes tareas:

  • $tiempo de espera: función () {
    // ......
    }


Estás recibiendo esto porque comentaste.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/angular/transportador/issues/2963#issuecomment-267302567 ,
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/AViSFkiN29oWnH6AJ0P_wNY_LNzE2fglks5rISCYgaJpZM4Hd20v
.

Hola a todos,

Estoy ejecutando un caso de prueba en el transportador obteniendo un error de tiempo de espera. Aquí están los detalles. Por favor aconséjame. Gracias

Error: se agotó el tiempo de espera para que finalicen las tareas angulares asincrónicas después de 30 segundos. Esto puede deberse a que la página actual no es una aplicación de Angular.

@sallojusuresh , la siguiente solución funcionó.
jasmineNodeOpts: {
intervalo de tiempo de espera predeterminado: 2500000
},
Pregunta: cuando podemos establecer un tiempo predeterminado como el anterior, ¿de dónde viene el uso de la función setTimeout en 'beforeEach' y las devoluciones de llamada en 'it'? ¿Alguna idea?

lo he arreglado de la siguiente manera

 var originalTimeout;

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

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

Gracias.

Narendra...!

El 11 de marzo de 2018 a las 23:53, Md. Zahirul Haque [email protected]
escribió:

lo he arreglado de la siguiente manera

` var tiempo de espera original;

antes de cada uno (función () {
originalTimeout = jazmín.DEFAULT_TIMEOUT_INTERVAL;
jazmín.DEFAULT_TIMEOUT_INTERVAL = 10000;
});

después de cada uno (función () {
jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
});`


Estás recibiendo esto porque comentaste.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/angular/transportador/issues/2963#issuecomment-372187210 ,
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/AViSFg7ITAW3XW5zky_-QXXmAudt11qDks5tdfE1gaJpZM4Hd20v
.

@NickTomlin Acabas de alegrarme el día :) He usado DirectConnect y he trabajado. Sería genial si arrojaras algo de luz sobre lo que DirectConnect realmente hace.

En mi caso, este error fue causado por el uso inadecuado de "fixture.detectChanges()". Parece que este método es un detector de eventos (asincrónico) que solo responderá una devolución de llamada cuando se detecten cambios. Si no se detectan cambios, no invocará la devolución de llamada, lo que generará un error de tiempo de espera. Espero que esto ayude :)

@juliemr Tiempo de espera: la devolución de llamada asíncrona no se invocó dentro del tiempo de espera especificado por jasmine.DEFAULT_TIMEOUT_INTERVAL. este error apareció en mi prueba nuevamente y nuevamente usé antes de cada, después de cada, browser.sleep, aumenté el intervalo de tiempo de espera de jasmine hasta 100000. pero mi código no se ejecuta, así que sugiérame qué podría hacer.

Recibí este problema y no puedo resolverlo mientras aumentaba el tiempo de espera de jasmine hasta 300000. Por lo tanto, sugiérame qué debo hacer para solucionarlo.

¿Podría proporcionar un ejemplo simple?

La solución a esto es, si está tratando de escribir pruebas para una aplicación no angular, vaya a runner.js en node_modules/protractor/built
Edite la línea # 210 a waitForAngularEnabled: false //true

@juliemr una sugerencia para hacer que esta configuración sea configurable.

podrías hacerlo en la sección onPrepare() :

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

Tengo el mismo problema, pero las soluciones proporcionadas aquí no me funcionaron. Si tiene tiempo, eche un vistazo a mi pregunta sobre Stack Overflow. El problema se puede reproducir fácilmente y tengo un repositorio. Supongo que es posible un error.
https://stackoverflow.com/questions/53786401/error-debugging-protractor-with-node-8-async-await-and-angular-6

Se esperaba que falso fuera igual a verdadero Porque: Registros de errores presentes en la consola: Entrada {
nivel: Nivel { nombre_: 'SEVERO', valor_: 1000 },
mensaje:
Error "ERROR": formGroup espera una instancia de FormGroup. Pase uno.\n\n Ejemplo:\n\n \n

\norte \norte
\n\n En su clase:\n\n this.myGroup = new FormGroup({\n firstName: new FormControl()\n });\n en Function.e.missingFormException

Obteniendo un problema al hacer clic en el botón emergente, ¿alguna solución?

Tengo un problema similar con la publicación y resolví mi problema agregando HttpClientModule en las importaciones:

antes de cada(() => {

TestBed.configureTestingModule({

    declarations: [],

    providers: [ CookieService, HttpClient],  

    imports: [HttpClientModule],
});

});

Tengo un problema similar con la publicación y resolví mi problema agregando HttpClientModule en las importaciones:

antes de cada(() => {

TestBed.configureTestingModule({

    declarations: [],

    providers: [ CookieService, HttpClient],  

    imports: [HttpClientModule],
});

});

Personalmente tuve problemas al importar HttpClientModule dentro de un banco de pruebas. Intenta ejecutar sus API en sus pruebas unitarias y, como resultado, fallan. El enfoque correcto sería usar HttpClientTestingModule

@sallojusuresh , la siguiente solución funcionó.
jasmineNodeOpts: {
intervalo de tiempo de espera predeterminado: 2500000
},
Pregunta: cuando podemos establecer un tiempo predeterminado como el anterior, ¿de dónde viene el uso de la función setTimeout en 'beforeEach' y las devoluciones de llamada en 'it'? ¿Alguna idea?

Esta es la mejor solución, simplemente pegue este fragmento de código en su archivo de configuración, debería resolver su problema.

¿Fue útil esta página
0 / 5 - 0 calificaciones