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.
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()
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.
Si vous utilisez Linux, assurez-vous de ne pas utiliser la racine. C'est ce qui m'a donné l'erreur.
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)
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.
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
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