selenium - tutorial - Ejecución de selenio-destornillador cromado con transportador en linux
selenium angular (2)
Debes poder ejecutar Chrome o Firefox sin cabeza y para eso necesitarás configurar Xvfb, entre otras cosas, de lo contrario, Chrome no podrá iniciarse sin un $ DISPLAY.
También podría usar PhantomJS, pero, en mi humilde opinión, de qué sirve eso para e2e testing, ya que no es un navegador real.
Esto es lo que estoy usando con éxito para las pruebas continuas: https://github.com/elgalu/docker-selenium
Estoy usando transportador para ejecutar pruebas contra una aplicación angular. Funcionan en mi entorno OSX pero no en Linux donde TeamCity intenta ejecutarlo.
Cuando ejecuto este comando en mi entorno OSX local, funciona (probado en la máquina de mi compañero de trabajo también):
./node_modules/protractor/bin/protractor protractor.conf.js
Using ChromeDriver directly...
..
Finished in 5.55 seconds
2 tests, 2 assertions, 0 failures
Cuando ejecuto esto en una máquina Linux, o un trabajo de TeamCity intenta ejecutarlo, falla:
./node_modules/protractor/bin/protractor protractor.conf.js
Using ChromeDriver directly...
/usr/share/TeamCity/buildAgent/work/57bd89f9c9abb5d5/webapp/node_modules/protractor/node_modules/selenium-webdriver/http/util.js:87
Error(''Timed out waiting for the WebDriver server at '' + url));
^
Error: Timed out waiting for the WebDriver server at http://127.0.0.1:52959/
at Error (<anonymous>)
at onResponse (/usr/share/TeamCity/buildAgent/work/57bd89f9c9abb5d5/webapp/node_modules/protractor/node_modules/selenium-webdriver/http/util.js:87:11)
at /usr/share/TeamCity/buildAgent/work/57bd89f9c9abb5d5/webapp/node_modules/protractor/node_modules/selenium-webdriver/http/util.js:42:21
at /usr/share/TeamCity/buildAgent/work/57bd89f9c9abb5d5/webapp/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/http/http.js:96:5
at ClientRequest.<anonymous> (/usr/share/TeamCity/buildAgent/work/57bd89f9c9abb5d5/webapp/node_modules/protractor/node_modules/selenium-webdriver/http/index.js:136:7)
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:415:13)
==== async task ====
WebDriver.createSession()
at Function.webdriver.WebDriver.acquireSession_ (/usr/share/TeamCity/buildAgent/work/57bd89f9c9abb5d5/webapp/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:131:49)
at Function.webdriver.WebDriver.createSession (/usr/share/TeamCity/buildAgent/work/57bd89f9c9abb5d5/webapp/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:111:30)
Intenta resolver:
He visto este problema , pero un servidor webdriver independiente no es una solución.
Miré este problema, pero mi versión de selenium-wedriver es 2.42.1
, así que no es el mismo error.
Versiones:
$ node --version
v0.10.26
$ ./node_modules/protractor/bin/protractor --version
Version 1.0.0
$ uname -mrs
Linux 3.11.0-15-generic x86_64
Progreso de la actualización:
Intentando que la versión de chrome-webdriver
expusiera un problema:
$ ./node_modules/protractor/selenium/chromedriver --version
./node_modules/protractor/selenium/chromedriver: error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directory
De esto concluí que había un problema de dependencia y descubrí que Selenium requiere Chrome . (más) .
Instalé Chrome en la caja de Linux usando pasos como este :
sudo apt-get install libxss1 libappindicator1 libindicator7
sudo wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome*.deb
Esto no funcionó exactamente así, pero después de algunas incursiones con dependencias y sudo apt-get install
creo que tengo instalado Chrome:
$ google-chrome --version
Google Chrome 36.0.1985.143
Esto hizo que la versión del cromedriver funcionara:
$ ./node_modules/protractor/selenium/chromedriver --version
ChromeDriver 2.10.267518
Sin embargo, ejecutar Protractor todavía no funciona:
$ ./node_modules/protractor/bin/protractor protractor.conf.js
Using ChromeDriver directly...
/usr/share/TeamCity/buildAgent/work/57bd89f9c9abb5d5/webapp/node_modules/protractor/node_modules/selenium-webdriver/lib/atoms/error.js:109
var template = new Error(this.message);
^
UnknownError: unknown error: Chrome failed to start: exited abnormally
(Driver info: chromedriver=2.10.267518,platform=Linux 3.11.0-15-generic x86_64)
at new bot.Error (/usr/share/TeamCity/buildAgent/work/57bd89f9c9abb5d5/webapp/node_modules/protractor/node_modules/selenium-webdriver/lib/atoms/error.js:109:18)
at Object.bot.response.checkResponse (/usr/share/TeamCity/buildAgent/work/57bd89f9c9abb5d5/webapp/node_modules/protractor/node_modules/selenium-webdriver/lib/atoms/response.js:106:9)
Tuve el mismo problema y se solucionó justo después de instalar unity-gtk3-module !!
yum install unity-gtk3-module
Installing:
PackageKit-gtk3-module
Updating:
Installing for dependencies:
PackageKit-glib
adwaita-cursor-theme
adwaita-icon-theme
at-spi2-atk
at-spi2-core
cairo-gobject
colord-libs
gtk3
json-glib
libXevie
libgusb
rest
Updating for dependencies:
glib2
espero que esto ayude