Podczas pracy z Selenium napotkałem problem. W moim projekcie muszę używać Chrome. Jednak nie mogę połączyć się z tą przeglądarką po uruchomieniu jej z Selenium.
Z jakiegoś powodu Selenium nie może samodzielnie znaleźć Chrome. Oto, co się dzieje, gdy próbuję uruchomić Chrome bez dołączania ścieżki:
Traceback (most recent call last):
File "./obp_pb_get_csv.py", line 73, in <module>
browser = webdriver.Chrome() # Get local session of chrome
File "/usr/lib64/python2.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 46, in __init__
self.service.start()
File "/usr/lib64/python2.7/site-packages/selenium/webdriver/chrome/service.py", line 58, in start
and read up at http://code.google.com/p/selenium/wiki/ChromeDriver")
selenium.common.exceptions.WebDriverException: Message: 'ChromeDriver executable needs to be available in the path. Please download from http://code.google.com/p/selenium/downloads/list and read up at http://code.google.com/p/selenium/wiki/ChromeDriver'
Aby rozwiązać ten problem, dołączyłem ścieżkę Chromium do kodu, który uruchamia Chrome. Jednak interpreterowi nie udaje się znaleźć gniazda do połączenia:
Traceback (most recent call last):
File "./obp_pb_get_csv.py", line 73, in <module>
browser = webdriver.Chrome('/usr/bin/chromium') # Get local session of chrome
File "/usr/lib64/python2.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 46, in __init__
self.service.start()
File "/usr/lib64/python2.7/site-packages/selenium/webdriver/chrome/service.py", line 64, in start
raise WebDriverException("Can not connect to the ChromeDriver")
selenium.common.exceptions.WebDriverException: Message: 'Can not connect to the ChromeDriver'
Próbowałem też rozwiązać problem, uruchamiając chrome z:
chrom --remote-shell-port = 9222
Jednak to też nie zadziałało.
PS. Oto kilka informacji o moim systemie:
klient www: chrom 15.0.874.121 dev-lang: python 2.7.2-r3 Selen 2.11.1 System operacyjny: GNU / Linux Gentoo Kernel 3.1.0-gentoo-r1
Odpowiedzi:
Musisz upewnić się, że samodzielny plik binarny ChromeDriver (inny niż plik binarny przeglądarki Chrome) znajduje się w Twojej ścieżce lub jest dostępny w zmiennej środowiskowej webdriver.chrome.driver.
Zobacz http://code.google.com/p/selenium/wiki/ChromeDriver, aby uzyskać pełne informacje na temat połączeń.
Edytować:
Racja, wydaje się, że jest to błąd w powiązaniach Pythona, który odczytuje plik binarny chromedriver ze ścieżki lub zmiennej środowiskowej. Wygląda na to, że jeśli chromedriver nie jest na twojej drodze, musisz przekazać go jako argument konstruktorowi.
źródło
W przypadku systemu Linux
chromium-browser -version
sudo apt-get install chromium-browser
/usr/bin
katalogusudo mv chromedriver /usr/bin
/usr/bin
katalogucd /usr/bin
sudo chmod a+x chromedriver
oznaczenie go jako wykonywalnego.wreszcie możesz wykonać kod.
źródło
Tylko Mac OSX
Łatwiejszym sposobem na rozpoczęcie pracy (zakładając, że masz już zainstalowany homebrew , który, jeśli nie, powinieneś zrobić to najpierw i pozwolić homebrew poprawić swoje życie), to po prostu uruchomić następujące polecenie:
To powinno postawić chromedriver na twojej drodze i wszystko powinno być gotowe.
źródło
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH.
brew doctor
i zobacz, czy to coś znajdzie.Dla Windowsa
Pobierz ChromeDriver z tego bezpośredniego linku LUB pobierz najnowszą wersję z tej strony .
Wklej
chromedriver.exe
plik do swojegoC:\Python27\Scripts
folderu.To powinno działać teraz:
źródło
W przypadku okien proszę
chromedriver.exe
umieścić pod<Install Dir>/Python27/Scripts/
źródło
/usr/lib/
czy gdzieś indziej?PATH
nie wystarczyło, umieszczenie go/Scripts/
tam, gdzieride.py
jest używany.Istnieją 2 sposoby uruchamiania testów Pythona Selenium w przeglądarce Google Chrome. Rozważam Windows (w moim przypadku Windows 10):
Warunek wstępny: pobierz najnowszy sterownik Chrome ze strony: https://sites.google.com/a/chromium.org/chromedriver/downloads
Sposób 1:
i) Rozpakuj pobrany plik zip w wybranym katalogu / lokalizacji
ii) Ustaw ścieżkę do pliku wykonywalnego w kodzie, jak poniżej:
Sposób 2:
i) Po prostu wklej plik chromedriver.exe w / Python / Scripts / (w moim przypadku był to folder: C: \ Python36 \ Scripts)
ii) Teraz napisz prosty kod jak poniżej:
źródło
W przypadku środowiska IDE systemu Windows:
Jeśli twoja ścieżka nie działa, możesz spróbować dodać
chromedriver.exe
do swojego projektu, tak jak w tej strukturze projektu.Następnie powinieneś załadować
chromedriver.exe
w swoim głównym pliku. Jak dla mnie, załadowałdriver.exe
indriver.py
...
oznaczadriver.py's
górny katalog.
oznacza katalog, w którymdriver.py
znajduje się plikMam nadzieję, że to będzie pomocne.
źródło