Erreur inconnue: Chrome n'a pas pu démarrer: sorti anormalement
J'obtiens cette erreur quand je lance mes tests avec le sélénium aide 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écharger google chrome stable et aussi chromedriver et ont utilisé ce code pour démarrer le navigateur.
driver = webdriver.Chrome('/usr/local/bin/chromedriver')
Toutes les suggestions de n'importe qui? Merci.
Vous devez vous connecter pour publier un commentaire.
Pour Linux :
Démarrer le Affichage avant de démarrer le Chrome. pour plus d'info cliquez sur ici
Pour aider à résoudre ce problème, vous pouvez utiliser le
service_log_path
etservice_args
arguments à l'selenium webdriver pour voir la sortie de la chromedriver:Je recevais ce même message d'exception et a trouvé deux façons d'obtenir le passé; je ne suis pas sûr si l'OP problème est le même, mais si pas, le chromedriver journal aidera, je l'espère. En regardant mon journal, j'ai découvert que la chromedriver (j'ai essayé de 2,9 à 2,6 tout en essayant de résoudre ce problème) qui décide du navigateur pour exécuter d'une façon très inattendue. Dans le répertoire où mon chromedriver se trouve que j'ai ces fichiers:
Quand j'invoque le chromedriver en utilisant le même code python que l'OP:
Cela conduit le message de l'exception. Dans le chromedriver.journal, j'ai trouvé ce message:
Incroyable! Le chromedriver est d'essayer d'utiliser
/path/to/chromium
(ce qui n'est pas un fichier exécutable, mais un répertoire contenant le code source) que le navigateur à exécuter! Apparemment chromedriver essaie de rechercher le répertoire courant pour un navigateur à exécuter avant de chercher monPATH
. Donc, une solution facile à ce problème consiste à vérifier le répertoire où lechromedriver
est situé pour les fichiers/répertoires commechrome
etchromium
et de les déplacer dans un autre répertoire que lechromedriver
.Une meilleure solution est d'indiquer explicitement le sélénium /chromedriver qui navigateur à exécuter à l'aide de la chrome_options argument:
La chromedriver.le journal indique maintenant:
comme prévu.
driver = webdriver.Chrome('/usr/local/bin/chromedriver')
àdriver = webdriver.Chrome()
, j'ai réussi à faire mon code à exécuter. Je ne sais pas pourquoi c'est arrivé, mais il n'a tout simplement! @pjhuwUne solution alternative de l'utilisation d'un écran virtuel est le headless mode.
Si vous utilisez Linux, assurez-vous que vous n'êtes pas en cours d'exécution en tant que root. Que ce qui m'a donné l'erreur.
--no-sandbox
pour le faire fonctionner.J'ai été confrontée au même problème et résolu par l'installation de google Chrome dans:
Vous pouvez le faire en exécutant le Chrome de l'Installation et de dire non lorsque vous êtes invité par le Contrôle de Compte d'Utilisateur.
Ce problème résolu à l'aide des étapes ci-dessous
1) Installer Xvfb
Centos 7 : yum install chromedriver chrome xorg-x11-server-Xvfb
2) mise à jour de chrome pilote
Centos 7 : wget https://chromedriver.storage.googleapis.com/2.40/chromedriver_linux64.zip
J'ai eu le même message d'erreur quand j'ai quelque chose d'analyse à l'aide de scrapy + sélénium + chrome pilote sur
Centos 7
,et la méthode de l'url suivante résolu mon problème.consulter:https://bugs.chromium.org/p/chromium/issues/detail?id=695212
Une autre solution pour selenium webdriver est X virtual frame buffer:
Quelqu'un l'a déjà mentionné à propos de
--no-sandbox
option, mais à la renforcer: assurez-vous, c'est la première option de vous passer:Lorsqu'il est ajouté après les autres options, j'ai obtenu l'erreur.