Używam selenu w Pythonie i pobrałem sterownik chromedriver dla mojego komputera z systemem Windows z tej witryny: http://chromedriver.storage.googleapis.com/index.html?path=2.15/
Po pobraniu pliku zip rozpakowałem plik zip do mojego folderu pobierania. Następnie umieszczam ścieżkę do pliku wykonywalnego binarnego (C: \ Users \ michael \ Downloads \ chromedriver_win32) w zmiennej środowiskowej „Ścieżka”.
Jednak gdy uruchamiam następujący kod:
from selenium import webdriver
driver = webdriver.Chrome()
... ciągle otrzymuję następujący komunikat o błędzie:
WebDriverException: Message: 'chromedriver' executable needs to be available in the path. Please look at http://docs.seleniumhq.org/download/#thirdPartyDrivers and read up at http://code.google.com/p/selenium/wiki/ChromeDriver
Ale - jak wyjaśniono powyżej - plik wykonywalny znajduje się (!) W ścieżce ... co tu się dzieje?
python
selenium
selenium-chromedriver
steady_progress
źródło
źródło
chromedriver.exe
w tym samym katalogu, co skrypt w Pythonie.choco install chromedriver
.Odpowiedzi:
Możesz sprawdzić, czy rzeczywiście znajduje się w PATH, jeśli otworzysz cmd i wpiszesz
chromedriver
(zakładając, że plik wykonywalny chromedriver nadal ma taką nazwę) i naciśnij Enter. JeśliStarting ChromeDriver 2.15.322448
się pojawia, oznacza to, że PATH jest odpowiednio ustawiona i coś innego jest nie tak.Alternatywnie możesz użyć bezpośredniej ścieżki do chromowanego sterownika w następujący sposób:
Więc w twoim konkretnym przypadku:
źródło
pip
?Widzę, że dyskusje wciąż mówią o starym sposobie konfigurowania chromedriver, pobierając plik binarny i ręcznie konfigurując ścieżkę.
Można to zrobić automatycznie za pomocą menedżera webdriver
Teraz powyższy kod w pytaniu będzie działał po prostu z poniższą zmianą,
To samo można wykorzystać do ustawienia Firefoksa, Edge'a i np. Plików binarnych.
źródło
Ta sama sytuacja z edycją społeczności pycharm, więc tak jak w przypadku cmd, musisz zrestartować ide, aby przeładować zmienne ścieżek. Zrestartuj swój ide i powinno być dobrze.
źródło
W systemie Linux (Ubuntu lub Debian):
W systemie macOS zainstaluj https://brew.sh/, a następnie zrób
źródło
driver = webdriver.Chrome()
działało dobrze dla mnie.Musimy dodać ciąg ścieżki, zaczynając od litery
r
przed łańcuchem, dla nieprzetworzonego łańcucha. Testowałem w ten sposób i działa.źródło
Dodatkowe informacje / wyjaśnienia dla przyszłych czytelników tego wątku, aby uniknąć majstrowania przy PATH env. zmienna na poziomie Windows i zrestartuj system Windows: (kopia mojej odpowiedzi z https://stackoverflow.com/a/49851498/9083077, jeśli dotyczy Chrome):
(1) Pobierz chromedriver (jak opisano wcześniej w tym wątku) i umieść (rozpakowany) chromedriver.exe w X: \ Folder \ of \ your \ choice
(2) Przykład kodu w Pythonie:
Uwagi: (1) Może minąć około 5 sekund, zanim przykładowy kod (w podanej odpowiedzi) otworzy przeglądarkę Firefox dla podanego adresu URL. (2) Konsola Pythona wyświetli następujący błąd, jeśli żaden serwer już nie działa pod podanym adresem URL lub nie obsługuje strony o tytule zawierającym ciąg „Django”: assert „Django” w przeglądarce.title AssertionError
źródło
Dla systemu Linux i OSX
Krok 1: Pobierz chromedriver
Krok 2: Dodaj chromedriver do
/usr/local/bin
Teraz powinieneś móc biec
bez żadnych problemów
źródło
Po rozpakowaniu chromedriver proszę podać dokładną lokalizację, aby można było ją później prześledzić. Poniżej otrzymujesz właściwy chromedriver dla swojego systemu operacyjnego, a następnie rozpakowujesz go do dokładnej lokalizacji, która może zostać podana jako argument później w kodzie.
wget http://chromedriver.storage.googleapis.com/2.10/chromedriver_linux64.zip unzip chromedriver_linux64.zip -d /home/virtualenv/python2.7.9/
źródło
/usr/local/bin/
zainstalować na całym świecie.Jeśli pracujesz z robotem RIDE. Następnie możesz pobrać
Chromedriver.exe
z jego oficjalnej strony internetowej i zachować ten plik .exe wC:\Python27\Scripts
katalogu. Teraz wspomnij tę ścieżkę jako zmienną środowiskową, np.C:\Python27\Scripts\chromedriver.exe
.Uruchom ponownie komputer i ponownie uruchom ten sam przypadek testowy. Nie będziesz miał więcej tego problemu.
źródło
Zgodnie z instrukcją podczas tworzenia instancji webdrivera należy dołączyć ścieżkę do ChromeDriver.
źródło
Zanim dodasz chromedriver do swojej ścieżki, upewnij się, że jest to ta sama wersja co Twoja przeglądarka.
Jeśli nie, musisz dopasować wersje: albo zaktualizuj / obniż wersję Chrome, a następnie zaktualizuj / obniż wersję swojego webdrivera.
Zalecam aktualizację Twojej wersji Chrome tak bardzo, jak to możliwe, i dopasowanie webdrivera.
Aby zaktualizować Chrome:
help
->About Google Chrome
Następnie pobierz kompatybilną wersję stąd: http://chromedriver.chromium.org/downloads .
Uwaga: najnowszy chromedriver nie zawsze pasuje do najnowszej wersji chrome!
Teraz możesz dodać go do PATH:
utwórz nowy folder gdzieś na swoim komputerze, w którym umieścisz sterowniki sieciowe. Utworzyłem folder o nazwie
webdrivers
wC:\Program Files
skopiuj ścieżkę do folderu. W moim przypadku tak było
C:\Program Files\webdrivers
kliknij prawym przyciskiem myszy
this PC
->properties
:Advanced System settings
Environment Variables
System variables
, kliknijpath
i kliknijedit
new
Otóż to! Użyłem pycharm i musiałem go ponownie otworzyć. Może to samo z innymi IDE lub terminalami.
źródło
Można spróbować ponownie uruchomić komputer, jeśli nie działa, po upewnieniu się, że PATH jest ustawiony poprawnie.
W moim przypadku w systemie Windows 7 zawsze otrzymywałem błąd na WebDriverException: Message: for chromedriver, gecodriver, IEDriverServer. Jestem prawie pewien, że mam właściwą ścieżkę. Uruchom ponownie komputer, wszystko działa
źródło
Najlepszy sposób na pewno jest tutaj:
Pobierz i rozpakuj chromedriver i umieść „chromedriver.exe” w C: \ Python27 \ Scripts, a wtedy nie musisz podawać ścieżki sterownika, po prostu
Skończyłeś, nie musisz dodawać ścieżek ani niczego
źródło
W moim przypadku ten błąd znika po skopiowaniu pliku chromedriver do folderu c: \ Windows. Dzieje się tak, ponieważ katalog systemu Windows znajduje się w ścieżce, którą skrypt Pythona sprawdza pod kątem dostępności chromedriver.
źródło
Jeśli używasz zdalnego interpretera, musisz również sprawdzić, czy zdefiniowano jego wykonywalną ścieżkę PATH. W moim przypadku przejście ze zdalnego interpretera Dockera na interpretera lokalnego rozwiązało problem.
źródło
Napotkałem ten sam problem, co twój. Używam PyCharm do pisania programów i myślę, że problem leży w konfiguracji środowiska w PyCharm, a nie w systemie operacyjnym. Rozwiązałem problem, przechodząc do konfiguracji skryptu, a następnie ręcznie edytując PATH w zmiennych środowiskowych. Mamy nadzieję, że okaże się to pomocne!
źródło
Dodaj webdriver (chromedriver.exe lub geckodriver.exe) tutaj C: \ Windows . To zadziałało w moim przypadku
źródło
Najlepszym sposobem może być pobranie bieżącego katalogu i dodanie do niego pozostałego adresu. Jak ten kod (Word w systemie Windows. W Linuksie możesz użyć czegoś z linii pwd):
webdriveraddress = str(os.popen("cd").read().replace("\n", ''))+'\path\to\webdriver'
źródło
Kiedy pobrałem plik chromedriver.exe, po prostu przenoszę go do folderu PATH C: \ Windows \ System32 \ chromedriver.exe i miałem dokładnie ten sam problem.
Dla mnie rozwiązaniem była po prostu zmiana folderu w PATH, więc po prostu przeniosłem go do folderu Pycharm Community bin, który również był w PATH. dawny:
źródło
Miałem problem z komputerem Mac Mojave z uruchomionym środowiskiem testowym robota i przeglądarką Chrome 77. To rozwiązało problem. Kudos @Navarasu za wskazanie mi właściwej ścieżki.
Następnie w zachęcie Pythona:
Prowadzi to do następującego błędu:
~/chromedriver/chromedriver
Otwórz
~/.bash_profile
w edytorze i dodaj:Otwórz nowe okno terminala, ta-da 🎉
źródło
Miałem ten problem na Webdriver 3.8.0 (Chrome 73.0.3683.103 i ChromeDriver 73.0.3683.68). Po tym, jak to zrobiłem, problem zniknął
aby zaktualizować Webdriver do wersji 3.14.1.
źródło
Sprawdź ścieżkę sterownika Chrome, może go stąd nie dostać. Po prostu skopiuj, wklej lokalizację sterownika do kodu.
źródło
(dla użytkowników komputerów Mac) Mam ten sam problem, ale rozwiązałem go w ten prosty sposób: Musisz umieścić swój chromedriver.exe w tym samym folderze z wykonywanym skryptem, a następnie w pyhton napisz tę instrukcję:
import os
os.environ ["PATH"] + = os.pathsep + r'X: / twój / folder / skrypt / '
źródło