it-swarm.com.de

Python - Selenium in Ubuntu OSError: [Errno 20] Kein Verzeichnis

Nach der Installation von Selenium in Ubuntu und dem Hinzufügen von Geckodriver zu path bekomme ich diese Fehlermeldung beim Ausführen 

from Selenium import webdriver

driver = webdriver.Firefox()

error:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/Selenium/webdriver/firefox/webdriver.py", line 135, in __init__
self.service.start()
File "/usr/local/lib/python2.7/dist-packages/Selenium/webdriver/common/service.py", line 64, in start
stdout=self.log_file, stderr=self.log_file)
File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1327, in _execute_child
raise child_exception
OSError: [Errno 20] Not a directory

Was ist los?

BEARBEITEN: Gelöst mit einem Chrom-Treiber anstelle eines Geckos.

17
User

Hatte das gleiche Problem. Es gab zwei Möglichkeiten, dies für mich zu beheben:

Fügen Sie den Programmdateipfad arg im Webtreiber hinzu:

driver = webdriver.Firefox(executable_path='/path/to/geckodriver')

Die zweite Möglichkeit ist das Hinzufügen eines Ordners, der den Export von Geckodriver enthält (nur Ordner, nicht Geckodriver):

$ export PATH=$PATH:/path/to/
31
Poloq

Neben der Antwort von @Poloq wäre der einfachste Weg, Ihre geckodriver-Binärdatei in einem Verzeichnis zu speichern, das sich bereits in Ihrer PATH befindet.

mv geckodriver /usr/local/bin

Auf diese Weise können Sie zusätzliche Einstellungen/Konfigurationen in Ihrem Projekt mit dem Nachteil vermeiden, dass bei der Bereitstellung auf verschiedenen Systemen ein zusätzlicher Schritt erforderlich ist.

3
dsalaj

Das Problem ist, dass Sie "Geckodriver" in "Drähte" umbenannt haben.

Die Lösung ist, "Geckodriver" zum Suchpfad hinzuzufügen, dann sollte es funktionieren.

1
Kamil W.

Neben den angegebenen Antworten gibt es auch diese Option, mit der Sie den Treiber nach /usr/bin kopieren können:

Sudo cp geckodriver /usr/bin 
0

Selen ist in den Ubuntu-Standardrepositorys in Ubuntu 16.04 und höher verfügbar. Um Selenium zu installieren, öffnen Sie das Terminal und geben Sie Folgendes ein:

Sudo apt install python-Selenium # for Python 2.x

und/oder

Sudo apt install python3-Selenium # for Python 3.x  

Geben Sie dann python ein, um den Python -Interpreter zu starten, und der Selenium-Import-Webtreiber sollte folgendermaßen funktionieren:

$ python  
>>> from Selenium import webdriver

Angenommen, der Pfad ~/.local/bin befindet sich in Ihrem Ausführungspfad. Gehen Sie folgendermaßen vor, um den Firefox-Webtreiber mit dem Namen geckodriver zu installieren:

wget https://github.com/mozilla/geckodriver/releases/download/v0.20.1/geckodriver-v0.20.1-linux64.tar.gz
tar xvfz geckodriver-v0.20.1-linux64.tar.gz
mv geckodriver ~/.local/bin

quelle: https://askubuntu.com/questions/1041541/i-want-to-install-Selenium-webdriver-in-my-ubuntu-16-04-system-for-python

0
puroh