2016-02-04 2 views
6

Ich kann Chromedriver mit Selenium nicht starten.Selen startet nicht Chromedriver

from selenium import webdriver 

browser = webdriver.Chrome() 
browser.get('http://www.google.com') 

Es wird nie zubrowser.get('http://www.google.com') doch irgendwie:

raise exception_class(message, screen, stacktrace) 
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally 
    (Driver info: chromedriver=2.21.371461 (633e689b520b25f3e264a2ede6b74ccc23cb636a),platform=Linux 3.13.0-76-generic x86_64) 

Ich bin auf Ubuntu 14.04 (64b) mit Python 2.7.6 (virtualenv Installation) und selenium==2.50.1.

[email protected]:~$ which chromedriver 
/usr/local/bin/chromedriver 

[email protected]:~$ ll /usr/local/bin/chromedriver 
lrwxrwxrwx 1 root root 24 feb 4 22:13 /usr/local/bin/chromedriver -> /opt/google/chromedriver* 

EDIT

[email protected]:~$ google-chrome --version 
Google Chrome 48.0.2564.97 

zu Chromedriver 2.20 Downgraded:

wget http://chromedriver.storage.googleapis.com/2.20/chromedriver_linux64.zip 
unzip chromedriver_linux64.zip 
chmod 777 chromedriver 
sudo mv -f chromedriver /opt/google/chromedriver 

aber leider immer noch das gleiche Ergebnis.

Eine Idee, warum passiert das?

+0

Interessant, konnte es nicht auf MacOSx reproduzieren, versuchte mit Python 2.7 und 3.5. Welche Chrome-Version haben Sie installiert? – alecxe

+0

@alecxe bearbeitet. – dm295

+0

Was ist, wenn Sie auf Chromedriver 2.20 herunterstufen? – alecxe

Antwort

5

Ok, so dass die Lösung ist ein Bit komisch.

Ich zog die Chromedriver binär von /opt/google/ (wo Google Chrome selbst installiert ist) zu /opt/, den Symlink aktualisiert und es funktioniert jetzt!

Im Vergleich zu der Frage selbst, diese beiden Zeilen Code lösen das Problem:

sudo mv /opt/google/chromedriver /opt/ 
sudo ln -fs /opt/chromedriver /usr/local/bin/chromedriver 

Und jetzt bin ich in der Lage, die folgenden Python-Code ausführen:

from selenium import webdriver 

browser = webdriver.Chrome() 
browser.get('http://www.google.com') 

Chrome startet und alles.

Die folgende Zeile auf dem old Selenium docs page mich inspiriert schließlich zu prüfen und den Chromedriver Lage zu ändern:

Für Linux-Systeme erwartet der ChromeDriver/usr/bin/google-chrome ein symbolischer Link auf das sein tatsächliche Chrome-Binärdatei.

0

Ich weiß nicht, ob dies das einzige Problem ist, mag es Sie haben aber chromedriver nicht „www.google.com“, jedoch ist es in Ordnung mit „http://www.google.com

+0

Von der Frage kopiert: Es kommt nie zu 'browser.get ('www.google.com')' ... Aber Sonst ja, guter Punkt – dm295