Chromedriver sur Travis-CI

j'ai de la difficulté à obtenir chromedriver sur Travis-CI travaille pour mon projet knock-out-secure-binding . J'essaie d'utiliser WebdriverJS pour automatiser les tests avec Chrome, au moins.

j'ai noté qu'il semble y avoir quelques problèmes avec chromedriver sur Travis-CI, y compris:

le problème semble être une variante de" chrome inaccessible", et de ce que je peux comprendre il nécessite un engagement en amont par Google pour le corriger.

les détails de l'erreur sont disponible à travers le journal de construction Travis .

aucune solution de rechange n'est apparente, bien qu'un commentaire ait mentionné l'utilisation de --no-sandbox , mais il n'est pas clair où et comment on emploierait ceci dans WebdriverJS.

toute réflexion à ce sujet serait sincèrement appréciée.

-- Edit --

comme question d'intérêt, j'utilise Sauce Labs au lieu de Chromedriver.

21
demandé sur Brian M. Hunt 2013-12-04 04:45:01

3 réponses

il y a un moyen plus simple de lancer Chrome sur Travis CI, il suffit de spécifier google-chrome dans addons/apt/sources et google-chrome-package dans addons/apt/packages.

Voici mon exemple de configuration pour une meilleure compréhension:

sudo: required
dist: trusty
addons:
  apt:
    sources:
      - google-chrome
    packages:
      - google-chrome-stable

language: node_js
node_js:
  - "6"
cache:
  directories: node_modules
branches:
  only: master

before_script:
  - export DISPLAY=:99.0
  - sh -e /etc/init.d/xvfb start
  - npm i -g npm@^3
  - sleep 3
7
répondu Burak Tasci 2016-12-09 12:19:55

je pense que Travis prend en charge chrome driver, Si vous ajoutez ceux-ci dans votre travis.YML, extrayez le bon chromedriver et décompressez-le à un endroit connu, de sorte que vous puissiez le tracer plus tard.

before_script:
  - wget http://chromedriver.storage.googleapis.com/2.10/chromedriver_linux64.zip
  - unzip chromedriver_linux64.zip -d /home/travis/virtualenv/python2.7.9/
  - export CHROME_BIN=chromium-browser
  - "export DISPLAY=:99.0"
  - "sh -e /etc/init.d/xvfb start"
  - sleep 3 

Plus lorsque vous appelez selenium ou n'importe quelle bibliothèque d'automation de test, vous devriez ajouter ceci le code ici est dans Python mais cela peut être fait dans Java et Ruby aussi bien.

options = webdriver.ChromeOptions()
options.binary_location = '/usr/bin/chromium-browser'
#All the arguments added for chromium to work on selenium
options.add_argument("--no-sandbox") #This make Chromium reachable
options.add_argument("--no-default-browser-check") #Overrides default choices
options.add_argument("--no-first-run")
options.add_argument("--disable-default-apps") 
driver = webdriver.Chrome('/home/travis/virtualenv/python2.7.9   /chromedriver',chrome_options=options)
4
répondu Harshdeep Singh 2016-09-30 16:26:47

si vous souhaitez utiliser un container-based Environnement (temps de démarrage rapide mais pas sudo ), vous pouvez également le faire comme suit (inclure language et ainsi de suite):

dist: trusty
sudo: false

addons:
  chrome: stable
  apt:
    packages:
      - chromium-chromedriver

before_script:
  # include ChromeDriver in PATH
  - ln --symbolic /usr/lib/chromium-browser/chromedriver "${HOME}/bin/chromedriver"
  # start Chrome and listen on localhost
  - google-chrome-stable --headless --disable-gpu --remote-debugging-port=9222 http://localhost &

ensuite, comme vous l'avez déjà mentionné, ajouter --no-sandbox à vos options Chrome (tiré de ce gist ):

var webdriver = require('selenium-webdriver');

var chromeOptions = {
    'args': ['--no-sandbox']
};

var chromeCapabilities = webdriver.Capabilities.chrome();
chromeCapabilities.set('chromeOptions', chromeOptions);

var driver = new webdriver.Builder().withCapabilities(chromeCapabilities).build();

Cela est dû à un problème Travis CI. Cependant, si vous avez besoin de sudo de toute façon ou si vous avez une construction de longue durée dans laquelle un environnement basé sur un conteneur n'a qu'un sens limité, vous pouvez aussi définir sudo: true et omettre d'ajouter --no-sandbox .

ressources supplémentaires:

0
répondu beatngu13 2018-07-21 13:28:37