usa peticiones metodo ejemplos con angularjs debugging webdriver protractor errno

angularjs - peticiones - No se puede ejecutar Prolongador-ECONNREFUSED connect ECONNREFUSED



peticiones ajax angular (10)

¿Estás ejecutando un servidor de selenio? El git README establece lo siguiente:

WebdriverJS no incluye de forma nativa el servidor de selenio; debe iniciar un servidor de selenio independiente. Todo lo que necesitas es el último selenium-server-standalone.

fuente: https://github.com/angular/protractor

Estoy tratando de aprender AngularJS. Como parte de esto, quiero aprender a usar pruebas de extremo a extremo. Actualmente, tengo una estructura de directorios como esta:

node_modules .bin ... protractor ... node_modules .bin adam-zip glob minijasminenode optimist saucelabs selenium-webdriver protractor config.js src tests test.e2e.js

Mi archivo config.js tiene el siguiente aspecto:

exports.config = { seleniumAddress: ''http://localhost:4444/wd/hub'', capabilities: { ''browserName'': ''chrome'' }, specs: [ ''../src/tests/test.e2e.js'' ], jasmineNodeOpts: { showColors: true, defaultTimeoutInterval: 30000 } };

test.e2e.js tiene el siguiente aspecto:

''use strict''; describe(''My Sample'', function () { driver = protractor.getInstance(); beforeEach(function () { driver.get(''#/''); }); it(''My First Test'', function () { message = "Hello."; expect(message).toEqual(''World.''); }); });

Cuando intento ejecutar mis pruebas de extremo a extremo usando transportador, ejecuto el siguiente comando desde la línea de comandos:

node_modules/.bin/protractor protractor/config.js

Cuando ejecuto ese comando, recibo el siguiente error:

C:/Src/MyProject/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1542 throw error; ^ Error: ECONNREFUSED connect ECONNREFUSED at ClientRequest.<anonymous> (C:/Src/MyProject/node_modules/protractor/node_modules/selenium-webdriver/http/index.js:12 7:16) at ClientRequest.EventEmitter.emit (events.js:95:17) at Socket.socketErrorListener (http.js:1528:9) at Socket.EventEmitter.emit (events.js:95:17) at net.js:441:14 at process._tickCallback (node.js:415:13) ==== async task ==== WebDriver.createSession() at Function.webdriver.WebDriver.acquireSession_ (C:/Src/MyProject/node_modules/protractor/node_modules/selenium-webdriv er/lib/webdriver/webdriver.js:130:49) at Function.webdriver.WebDriver.createSession (C:/Src/MyProject/node_modules/protractor/node_modules/selenium-webdriver /lib/webdriver/webdriver.js:110:30) at Builder.build (C:/Src/MyProject/node_modules/protractor/node_modules/selenium-webdriver/builder.js:105:20) at runJasmineTests (C:/Src/MyProject/node_modules/protractor/lib/runner.js:191:45) at C:/Src/MyProject/node_modules/protractor/lib/runner.js:255:5 at C:/Src/MyProject/node_modules/protractor/node_modules/selenium-webdriver/lib/goog/base.js:1178:15 at webdriver.promise.ControlFlow.runInNewFrame_ (C:/Src/MyProject/node_modules/protractor/node_modules/selenium-webdriv er/lib/webdriver/promise.js:1438:20) at notify (C:/Src/MyProject/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:328:12) at then (C:/Src/MyProject/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:377:7)

¿Qué estoy haciendo mal?


@Alexandros Spyropoulos, me tomó bastante tiempo descubrir cómo usar el transportador y creo que tuvimos el mismo problema. Debería abrir una pestaña de terminal y ejecutar webdriver-manager start --standalone. A continuación, abra otra etiqueta de terminal y ejecute transportador ***. Conf.js


Con la esperanza de que pueda ayudar a alguien: he tenido el mismo problema: encontrarme con ECONNREFUSED usando grunt-protractor-runner . El matiz de mi caso es que estaba ejecutando todo mi entorno E2E (archivos de prueba, aplicaciones web y todo el back-end) dentro de un contenedor Docker.

Intenté ejecutar el transportador

  • con y sin la tarea adicional de grunt-protractor-webdriver para activar y ejecutar webdriver ''manualmente'' (no hay diferencia);
  • con y sin habilitar las configuraciones directConnect y keepAlive (evitando Selenium y dando como resultado fallas relacionadas con Chromedriver, una de las cuales se describió here ).

La solución fue bastante simple: aumentar la cantidad de memoria asignada al contenedor. En mi máquina host con Windows 10, realicé los siguientes pasos:

  1. Ejecute VBoxManage.exe modifyvm default --memory 8192 (mediante script de shell personalizado) antes de iniciar la docker-machine (a través de la secuencia de comandos Docker Quickstart, que es equivalente a docker-machine start ). (Gracias a esta respuesta SO ).
  2. Cambiar mi script de shell para ejecutar mi contenedor predeterminado, agregando el --shm-size=4G al comando de docker run mi docker run . ( Ver documentos )
    • Puede verificar si funcionó ejecutando df -h en su máquina invitada, verificando la cantidad de memoria montada en /dev/shm .

Como resultado, ya no tengo errores aparentemente inexplicables como ECONNREFUSED.


El mensaje de error se debe a lo siguiente:

[ECONNREFUSED] El intento de conectarse se ignoró (porque el objetivo no está escuchando conexiones) o se rechazó explícitamente.

Verifique la URL del administrador de Webdriver. La URL predeterminada es:

http://localhost:4444/wd/hub

Use un proceso en segundo plano para ejecutar el administrador de disco web, luego ejecute transportador:

Start-Process webdriver-manager start -passthru protractor conf.js

Esto iniciará un servidor de Selenium y generará un montón de registros de información. Su prueba de transportador enviará solicitudes a este servidor para controlar un navegador local. Deja este servidor funcionando

Referencias


Lo conseguí trabajando eliminando la siguiente línea de mi config.js

seleniumAddress: ''http://localhost:4444/wd/hub'',


Lo resolví con --standalone flag:

webdriver-manager start --standalone


Para mí, esto había sucedido debido a versiones incompatibles de Node y Protractor.

Mi solución-

  1. Actualizar el nodo a la última versión (v7.0.0 en mi caso)

Siga los pasos dados aquí https://.com/a/19333717/1902831

  1. Instale la última versión de transportador (4.0.10 en mi caso) usando:

npm install -g transportador

  1. Abra otra terminal y ejecute estos comandos:

actualización webdriver-manager

webdriver-manager start

  1. Ejecute pruebas en otra terminal usando:

transportador conf.js


Si ejecuta la demostración del transportador proporcionado, debe intentar ejecutar la configuración del transportador en el mismo símbolo del sistema que el selenio. Intente ejecutar tanto el servidor de selenio como el transportador por separado.

Asegúrese de que el primer selenio se ejecute siguiendo el comando.

webdriver-manager start --standalone

Y ejecuta el transportador en una ventana de comando separada.

protractor conf.js

(En mi caso conf.js era el archivo de configuración)


Si está utilizando el complemento de npm transportador-webdriver grunt ( https://www.npmjs.org/package/grunt-protractor-webdriver ) puede experimentar el mismo tipo de error. Esto se debe a la terminación del controlador web justo antes de que termine la prueba. La prueba se ejecuta correctamente y luego aparece un mensaje como:

Session deleted: Going to shut down the Selenium server Shutting down Selenium server: http://127.0.0.1:4444 Shut down Selenium server: http://127.0.0.1:4444 (OKOK) d:/Projets/Clouderial/nodeProjects/cld-apps/node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/http/index.js:145 callback(new Error(message)); ^ Error: ECONNREFUSED connect ECONNREFUSED at ClientRequest.<anonymous> (d:/Projets/Clouderial/nodeProjects/cld-apps/node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/http/index.js:145:16) at ClientRequest.EventEmitter.emit (events.js:95:17) at Socket.socketErrorListener (http.js:1547:9) at Socket.EventEmitter.emit (events.js:95:17) at net.js:440:14 at process._tickCallback (node.js:419:13)

Resuelvo esto usando la opción keepAlive en el plugin grunt.

Aquí está mi configuración de Gruntfile.js:

protractor_webdriver: { options: { keepAlive : true // True to keep the webdriver alive }, start: { }, }, ...

Espero que esto ayude a alguien.

JM.


También me enfrenté al mismo problema, el truco que funcionó para mí es usar ventanas de dos cmd, manteniendo la abierta después de escribir el webdriver-manager start y sin presionar la tecla enter (si se presiona la tecla enter el servidor de selenio se apaga, no lo haga saber por qué) abre otra ventana de cmd y llama a tus pruebas.