tutorial locators example español angularjs protractor e2e-testing

angularjs - locators - El transportador E2E angular "no se pudo encontrar el ángulo en la ventana"



protractor tutorial español (4)

Tengo un error extraño después de ejecutar mis pruebas en el proyecto angular Error: Error while waiting for Protractor to sync with the page: "angular could not be found on the window" . Mi configuración del transportador se ve así:

require(''coffee-script'').register(); exports.config = { seleniumServerJar: ''./node_modules/protractor/selenium/selenium-server-standalone-2.39.0.jar'', seleniumAddress: ''http://localhost:4444/wd/hub'', capabilities: { browserName: ''chrome'' //''chromeOptions'': { // ''args'': [''--disable-extensions''] //} }, specs: [ ''*_spec.coffee'' ], allScriptsTimeout: 10000000000, baseUrl: ''http://localhost:9003/'', jasmineNodeOpts: { isVerbose: false, showColors: true, includeStackTrace: true, defaultTimeoutInterval: 10000000000 } };

Y prueba:

loginPage = require ''./pages/log_in_page'' describe ''Log In'', -> it ''shows after login'', -> loginPage() .setEmail(''[email protected]'') .setPass(''a46s75d4as765d4a6s7d54as76d5as74das76d5'')

Obtener información de la página:

module.exports = -> @email = element By.css ''.test-i-login'' @password = element By.css ''.test-i-password'' @setEmail = (name) => @email.sendKeys(name) this @setPass = (number) => @password.sendKeys(number) this this

Hay algunos problemas similares en github, pero no encontré una solución que funcionara para mí. Gracias por responder.


Cambiar la opción de framework en la configuración de ''jasmine2'' a ''jasmine2'' solucionó este problema para mí.

Vea este hilo para más información.


El transportador está diseñado para probar aplicaciones angulares, lo que significa que las páginas web tienen una etiqueta ng-app en el cuerpo del HTML y los controladores que corresponden al código angular en un archivo Javascript.

La razón por la que Protractor es tan útil es que las aplicaciones Angular se ejecutan de forma asíncrona , lo que significa que no siempre se terminan de cargar cuando se carga la página web. La mayoría de los marcos de prueba intentarán hacer clic en cosas, escribir cosas, etc. antes de que la página esté completamente lista. El transportador detecta todos los procesos angulares que se ejecutan en segundo plano para que no haga algo accidentalmente antes de que todo esté listo.

Lo que le está diciendo el transportador es que no encontró ningún proceso angular en ejecución en la página. Su página podría funcionar bien, pero simplemente no depende de Angular de una manera que el Transportador pueda reconocer.

Eso no significa que Protractor no pueda probar la página. Puede acceder a los comandos normales de WebDriver utilizando browser.driver.any_webdriver_command_here() . Simplemente se perderá las fantásticas capacidades de sincronización que ofrece Protractor.


En mi caso, la página de inicio de sesión no es angular, se intentó de la siguiente manera, funcionó para mí

browser.driver.findElement(By.id(''username'')).sendKeys(''binnu'');


La razón por la que esto sucedió, porque tenía una instalación incorrecta de la ruta chromedriver Y es por eso que recibí este mensaje "no se pudo encontrar el ángulo en la ventana". El otro problema que tuve es que necesitaba ejecutar webdriver manualmente como proceso en segundo plano. Esto se resuelve al hacer la tarea correcta (que hice mal), que se verá así:

gulp.task [''test''], -> runSequence start_server, run_protractor, end_server.

Supongamos que ayudará a alguien que tendrá problemas similares (tontos).