angularjs - example - protractor tutorial español
Error Se agotó el tiempo de espera para que Transportador se sincronice con la página después de 11 segundos (4)
Tengo un problema con mis pruebas de transportador. Mi aplicación angular usa $ timeout para sondear continuamente algo de un servidor. Lamentablemente, esto genera el siguiente mensaje de error cuando estoy ejecutando mis pruebas:
There was a webdriver error: Error Timed out waiting for Protractor to synchronize with the page after 11 seconds. Please see https://github.com/angular/protrac
tor/blob/master/docs/faq.md
¿Cómo puedo manejar esos tiempos de espera de sondeo continuo? Configurar el browser.ignoreSynchronization
la browser.ignoreSynchronization
en false
no es una buena solución en mi caso (cuando lo hago tengo que insertar mucho browser.sleep()
)
El cambio de $ timeout a $ interval como se sugiere aquí actualmente no es posible en mi aplicación. Tampoco es posible aumentar el tiempo de espera (como he dicho, el servicio está continuamente sondeando algo del servidor)
¿Existe la posibilidad de cambiar la rutina waitForAngular
para que mi prueba no waitForAngular
el tiempo de espera?
Cualquier ayuda será muy apreciada.
Cambiar allScriptsTimeout a un valor superior a 11000 mil solucionó mi problema
Se agotó el tiempo de espera para el transportador ...
En node_modules / transportador / lib / configParser.js, cambiado:
allScriptsTimeout: 25000
De la documentación del transportador :
Antes de realizar cualquier acción, Transportador le pide a Angular que espere hasta que la página se sincronice. Esto significa que todos los tiempos de espera y las solicitudes http han finalizado. Si su aplicación sondea continuamente $ timeout o $ http, nunca se registrará como completamente cargada. Debería usar el servicio $ interval ( interval.js ) para cualquier cosa que sondee continuamente (introducido en Angular 1.2rc3).
El mismo bote contigo.
Hemos visto muchas publicaciones sobre sleep()
, waitForAngular()
y browser.ignoreSynchronization
.
Estoy de acuerdo con usted en que no es una buena idea establecer: ignoreSynchronization = true
, ya que nos obliga a esperar en cada proceso asíncrono manualmente.
Algunos sugirieron usar sleep()
y luego waitForAngular()
juntos así:
browser.sleep(10000);
browser.waitForAngular();
Realmente no entiendo por qué a veces waitForAngular()
no puede esperar a que se complete la sincronización de la página, y este código de "doble espera" funcionó.
Por favor, mira si funciona en tu caso.
agregar allScriptsTimeout: 50000 en el archivo de configuración del transportador
exports.config = {
...
allScriptsTimeout: 50000,
...
};
o al menos esto resolvió mi problema