web-dev-qa-db-ger.com

Verwendung von Chromdriver mit Selen/Python/Ubuntu

Ich versuche, einige Tests mit einem Chromedriver durchzuführen und habe mit den folgenden Methoden versucht, den Chromedriver zu starten.

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

und 

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

und

import os
from Selenium import webdriver

chromedriver = "/usr/local/bin/chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
driver.get("http://stackoverflow.com")

Aber nichts davon scheint zu helfen und der Fehler lautet: Selenium.common.exceptions.WebDriverException: Message: 'ChromeDriver executable needs to be available in the path.

Ich habe mehrmals geprüft, und chromedriver ist im Speicherort /usr/local/bin vorhanden.

Meine Skripte funktionieren immer noch nicht. Könnte jeder Körper pls helfen.

Mein Google-Chrome-Speicherort lautet:/usr/bin/google-chrome

18
Saheb

Dem Vorschlag von https://askubuntu.com/questions/539498/where-does-chromedriver-install-to folgend, konnte ich es so machen:

  1. Installierte den Chrom-Chrom-Treiber: 

    Sudo apt-get install chromium-chromedriver
    
  2. Pfad zur Selenlinie hinzufügen: 

    driver = webdriver.Chrome("/usr/lib/chromium-browser/chromedriver")
    

Beachten Sie, dass dies Chromium und nicht Chrom öffnet. Ich hoffe es war hilfreich.

32
Zamfir Stefan

Ich habe das Problem folgendermaßen gelöst:

  1. Öffnen Sie ein Terminal und geben Sie whereis chromedriver ein. In meinem Fall hatte ich folgende Ausgabe: 

    chromedriver: /usr/local/bin/chromedriver

  2. Kopieren Sie diesen Pfad und bearbeiten Sie Ihre Webdriver-Instanz wie folgt:

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

Das sollte genug sein!

2
Javier Sorella

Die Meldung besagt, dass die ausführbare Datei von ChromeDriver im Pfad verfügbar sein muss.

Also ist es auf dem Weg? Was ist die Ausgabe von:

$ cd
$ chromedriver --version

Wenn Sie die Version nicht sehen, ist chromedriver definitiv nicht im PFAD enthalten.

Ich kann dem Web-Treiber nicht sagen, wo er sonst chromedriver findet. - Ich verwende das Ubuntu-Paket "Chrom-Chrom-Treiber", aber es wird die Binärdatei in /usr/lib/chromium-browser/chromedriver abgelegt, die nicht in meinem PATH enthalten ist. Also habe ich einen Softlink in /usr/bin eingefügt.

1
Robert Siemer

Folgendes sollte normalerweise funktionieren:

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

Beachten Sie, dass in Ihrer Frage kein vorangestelltes "/" im Pfad war.

Stellen Sie außerdem sicher, dass die in/usr/local/bin/befindliche ausführbare Datei für Chromedriver über die erforderlichen Dateiberechtigungen verfügt, d.

> chmod 777 /usr/local/bin/chromedriver
1
Tytus

Sie müssen sicherstellen, dass sich die Standalone-ChromeDriver-Binärdatei entweder in Ihrem Pfad befindet oder in der Umgebungsvariablen webdriver.chrome.driver verfügbar ist. Versuchen Sie dann, den absoluten Pfad zu dieser Binärdatei zu verwenden. 

    File chromeDriver = new File("/usr/bin/chromedriver");
    System.setProperty("webdriver.chrome.driver", chromeDriver.getAbsolutePath());
    driver = new ChromeDriver();
0
Devarshi Tank

Übergeben Sie einfach den binären Speicherort als Argument, und nicht nur das Verzeichnis, in dem er sich befindet. Wenn es also im Verzeichnis/usr/bin liegt, führen Sie den folgenden Befehl aus:

driver = webdriver.Chrome("/usr/bin/chromedriver")

Das hat für mich in Ubuntu funktioniert und das Hinzufügen von Pfad zu Bashrc funktioniert nicht. Versuche es.

0
amritkrs

hoffe, dass dies für einige nützlich sein wird, die mich mochten. In meinem Fall habe ich den vorangegangenen Schrägstrich im Pfad "home/user/chromedriver" anstelle von "/ home/user/chromedriver" gelassen.

0