web-dev-qa-db-fra.com

Erreur inconnue: Echec du démarrage de Chrome: sortie anormale

Je reçois cette erreur lorsque je lance mes tests avec Selenium en utilisant chromedriver.

Selenium.common.exceptions.WebDriverException: Message: u'unknown error: Chrome failed to start: exited abnormally\n  (Driver info: chromedriver=2.9.248316,platform=Linux 3.8.0-29-generic x86)'

J'ai téléchargé google-chrome stable et également chromedriver et ai utilisé ce code pour démarrer le navigateur.

driver = webdriver.Chrome('/usr/local/bin/chromedriver')

Des suggestions quelqu'un? Merci.

28
Saheb

Pour Linux:

Démarrez le Affichage avant de démarrer Chrome. pour plus d'informations, cliquez ici

from pyvirtualdisplay import Display
display = Display(visible=0, size=(800, 800))  
display.start()
driver = webdriver.Chrome()
27
Vicky

Pour vous aider à résoudre ce problème, vous pouvez utiliser les arguments service_log_path et service_args du WebDriver Selenium pour afficher le résultat de la commande chromedriver:

service_log_path = "{}/chromedriver.log".format(outputdir)
service_args = ['--verbose']
driver = webdriver.Chrome('/path/to/chromedriver',
        service_args=service_args,
        service_log_path=service_log_path)

Je recevais le même message d'exception et j'ai trouvé deux façons de le dépasser. Je ne suis pas sûr que le problème de l'OP soit identique, mais si ce n'est pas le cas, le journal de chromedriver aidera, espérons-le. En regardant mon journal, j'ai découvert que le chromedriver (j'ai essayé de 2.9 jusqu'à la version 2.6 tout en essayant de résoudre ce problème) décide quel navigateur exécuter de manière très inattendue. Dans le répertoire où se trouve mon chromedriver, j'ai ces fichiers:

$ ls -l /path/to/
-rwx------  1 pjh grad_cs 5503600 Feb  3 00:07 chromedriver-2.9
drwxr-xr-x  3 pjh grad_cs    4096 Mar 28 15:51 chromium

Lorsque j'appelle le chromedriver en utilisant le même code python que l'OP:

driver = webdriver.Chrome('/path/to/chromedriver-2.9')

Cela conduit au message d'exception. Dans le chromedriver.log j'ai trouvé ce message:

[1.043][INFO]: Launching chrome: /path/to/chromium ...

Incroyable! Chromedriver tente d'utiliser /path/to/chromium (qui n'est pas un fichier exécutable, mais un répertoire contenant le code source) comme navigateur à exécuter! Apparemment, chromedriver tente de rechercher dans le répertoire actuel un navigateur à exécuter avant de rechercher ma PATH. Une solution simple à ce problème consiste donc à vérifier le répertoire dans lequel se trouve chromedriver pour les fichiers/répertoires tels que chrome et chromium et à les déplacer dans un répertoire différent de celui de chromedriver.

Une meilleure solution consiste à indiquer explicitement à Selenium/chromedriver le navigateur à exécuter à l'aide de l'argument chrome_options:

options = webdriver.ChromeOptions()
options.binary_location = '/opt/google/chrome/google-chrome'
service_log_path = "{}/chromedriver.log".format(outputdir)
service_args = ['--verbose']
driver = webdriver.Chrome('/path/to/chromedriver',
        chrome_options=options,
        service_args=service_args,
        service_log_path=service_log_path)

Le chromedriver.log montre maintenant:

[0.999][INFO]: Launching chrome: /opt/google/chrome/google-chrome ...

comme prévu.

25
pjhsea

Si vous utilisez Linux, assurez-vous de ne pas utiliser la racine. C'est ce qui m'a donné l'erreur.

6
GuySoft

Une autre solution consistant à utiliser un affichage virtuel est le mode sans tête.

from Selenium import webdriver

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--window-size=1420,1080')
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
driver = webdriver.Chrome(chrome_options=chrome_options)
6
Siyu

J'ai été confronté au même problème et je l'ai résolu en installant Chrome dans:

C:\Users\..\AppData\Local\Google\Chrome\Application

Pour ce faire, exécutez le programme d'installation de Chrome et dites non à l'invite du contrôle de compte d'utilisateur.

1
quasarseeker

Ce problème a été résolu en utilisant les étapes ci-dessous. 

1) Installez Xvfb Centos 7: yum installez chromedriver chrome xorg-x11-server-Xvfb

2) mettre à jour le pilote chrome Centos 7: wget https://chromedriver.storage.googleapis.com/2.40/chromedriver_linux64.Zip

0
praveen kedar

J'ai eu la même erreur quand j'explorais quelque chose en utilisant scrapy + Selenium + pilote chromé sur Centos 7 et la méthode de suivre l'URL a résolu mon problème.

yum install mesa-libOSMesa-devel gnu-free-sans-fonts

voir: https://bugs.chromium.org/p/chromium/issues/detail?id=695212

0
xiaolizi