질문 : Python을 사용하는 Selenium-Geckodriver 실행 파일이 PATH에 있어야합니다.
저는 프로그래밍을 처음 접했고 약 2 개월 전에 Python으로 시작했으며 Sweigart의 Automate the Boring Stuff with Python 텍스트를 살펴 보겠습니다. IDLE을 사용하고 있으며 이미 Selenium 모듈과 Firefox 브라우저를 설치했습니다.
webdriver 기능을 실행하려고 할 때마다 다음과 같은 메시지가 표시됩니다.
from selenium import webdriver
browser = webdriver.Firefox()
예외:
Exception ignored in: <bound method Service.__del__ of <selenium.webdriver.firefox.service.Service object at 0x00000249C0DA1080>>
Traceback (most recent call last):
File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 163, in __del__
self.stop()
File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 135, in stop
if self.process is None:
AttributeError: 'Service' object has no attribute 'process'
Exception ignored in: <bound method Service.__del__ of <selenium.webdriver.firefox.service.Service object at 0x00000249C0E08128>>
Traceback (most recent call last):
File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 163, in __del__
self.stop()
File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 135, in stop
if self.process is None:
AttributeError: 'Service' object has no attribute 'process'
Traceback (most recent call last):
File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 64, in start
stdout=self.log_file, stderr=self.log_file)
File "C:\Python\Python35\lib\subprocess.py", line 947, in __init__
restore_signals, start_new_session)
File "C:\Python\Python35\lib\subprocess.py", line 1224, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified
geckodriver
의 경로를 설정해야한다고 생각하지만 어떻게해야할지 모르겠습니다. 어떻게해야합니까?
답변
selenium.common.exceptions.WebDriverException : 메시지 : 'geckodriver'실행 파일이 PATH에 있어야합니다.
먼저 Selenium을 사용하여 최신 Firefox를 실행하려면 여기에서 최신 실행 가능한 geckodriver를 다운로드해야합니다.
실제로 Selenium 클라이언트 바인딩은 시스템 PATH
geckodriver
실행 파일을 찾으려고합니다. 실행 파일이 포함 된 디렉토리를 시스템 경로에 추가해야합니다.
- Unix 시스템에서는 Bash 호환 쉘을 사용하는 경우 다음을 수행하여 시스템의 검색 경로에 추가 할 수 있습니다.
export PATH=$PATH:/path/to/directory/of/executable/downloaded/in/previous/step
- Windows에서는 Path 시스템 변수를 업데이트하여 실행 가능한 geckodriver에 수동으로 전체 디렉토리 경로를 추가 하거나 명령 줄 ** (적용하려면 시스템 PATH에 실행 가능한 geckodriver를 추가 한 후 시스템을 다시 시작하는 것을 잊지 마십시오) **. 원칙은 Unix와 동일합니다.
이제 다음과 같이 코드를 실행할 수 있습니다.
from selenium import webdriver
browser = webdriver.Firefox()
selenium.common.exceptions.WebDriverException : 메시지 : 예상되는 브라우저 바이너리 위치이지만 기본 위치에서 바이너리를 찾을 수 없으며 'moz : firefoxOptions.binary'기능이 제공되지 않았으며 명령 줄에 바이너리 플래그가 설정되지 않았습니다.
예외는 Selenium이 Firefox를 찾고 기본 위치에서 시작하려고 시도하는 동안 Firefox를 다른 위치에 설치했지만 찾을 수 없다고 명시합니다. 다음과 같이 Firefox를 실행하려면 명시 적으로 Firefox가 설치된 바이너리 위치를 제공해야합니다.
from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
binary = FirefoxBinary('path/to/installed firefox binary')
browser = webdriver.Firefox(firefox_binary=binary)
https://github.com/mozilla/geckodriver/releases
Windows의 경우 :
GitHub에서 파일을 다운로드하고 압축을 풀고 Python 파일에 붙여 넣습니다. 그것은 나를 위해 일했습니다.
https://github.com/mozilla/geckodriver/releases
나를 위해 내 경로 경로는 다음과 같습니다.
C:\Users\MYUSERNAME\AppData\Local\Programs\Python\Python39
출처 : https://stackoverflow.com/questions/40208051/selenium-using-python-geckodriver-executable-needs-to-be-in-path
'프로그래밍 언어 > Python' 카테고리의 다른 글
특정 크기로 Python에서 빈 리스트 만들기 (0) | 2022.03.29 |
---|---|
Python에서 쿼리 문자열을 urlencode하는 방법 (0) | 2022.03.29 |
파이썬에서 긴 여러 줄 문자열을 작성하는 방법 (0) | 2022.03.29 |
파이썬 __init__와 self 의 의미 (0) | 2022.03.26 |
파이썬에서 && (AND 논리 연산자) 를 사용하는 방법 (0) | 2022.03.26 |