L'exécution de sélénium chromedriver à l'aide de Rapporteur sur linux
Je suis en utilisant le rapporteur pour l'exécution de tests contre Angulaire de l'application. Ils travaillent sur mon OSX environnement, mais pas sur Linux, où TeamCity est d'essayer de l'exécuter.
Quand je lance cette commande sur mon local OSX environnement, il fonctionne (testé sur mes collègues de la machine, aussi):
./node_modules/protractor/bin/protractor protractor.conf.js
Using ChromeDriver directly...
..
Finished in 5.55 seconds
2 tests, 2 assertions, 0 failures
Lorsque je l'exécute sur une machine linux, ou un TeamCity travail essaie de l'exécuter, il échoue:
./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)
Tente de résoudre:
J'ai regardé ce problème, mais autonome webdriver serveur n'est pas une solution.
J'ai regardé ce problème mais ma version de sélénium wedriver est 2.42.1
, donc, pas le même bug.
Versions:
$ 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
Progrès De Mise À Jour:
En essayant d'obtenir la version de chrome-webdriver
exposé un problème:
$ ./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 ce que je conclu il y a un problème de dépendance et a constaté que Le sélénium nécessite Chrome. (en savoir plus).
J'ai installé Chrome sous Linux à l'aide de des mesures de cet ordre:
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
Cela ne fonctionne pas exactement comme cela, mais après quelques va et voyages aller avec dépendances et sudo apt-get install
je crois que j'ai Chrome installé:
$ google-chrome --version
Google Chrome 36.0.1985.143
Ce qui fait que la chromedriver version de travail:
$ ./node_modules/protractor/selenium/chromedriver --version
ChromeDriver 2.10.267518
Toutefois, l'exécution de Rapporteur ne fonctionne toujours pas:
$ ./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)
OriginalL'auteur SimplGy | 2014-08-13
Vous devez vous connecter pour publier un commentaire.
Vous devez être en mesure d'exécuter Chrome ou Firefox sans tête et pour cela, vous aurez besoin de configurer Xvfb entre autres choses, sinon Chrome ne se lancera sans une bonne $AFFICHAGE.
Vous pouvez également utiliser PhantomJS, mais, à mon humble avis, ce n'est que pour e2e test car n'est pas un vrai navigateur.
C'est ce que je suis, avec succès, pour des essais en continu: https://github.com/elgalu/docker-selenium
xvfb
exécutez google Chrome, trop? Aussi, wow @ que le gist.La réponse réelle pour moi, c'est pour l'exécution de ces contre PhantomJS. Cela fonctionne très bien pour mes besoins. Dès que nous découvrons un cas qui passe Fantôme, mais échoue dans la vraie vie, nous allons mettre en place une Sélénium Serveur avec une fenêtre GUI au même endroit que celui CI peut utiliser.
Cool! vous devriez aller avec un Fantôme! J'ai fait des erratique des échecs dans PhantomJS-Rapporteur, quand je l'ai essayé donc donné. J'espère que vous avez plus de chance!!
Et oui, xvfb fonctionne avec Chrome ou de toute application, j'ai essayé qui nécessite un affichage sous linux.
OriginalL'auteur Leo Gallucci
J'ai eu le même problème et il est résolu juste après l'installation de l'unité-gtk3-module !!
yum install unity-gtk3-module
j'espère que cette aide
OriginalL'auteur Inforedaster