SHORTCUT
반응형
📌 에러 내용 및 상황
- 셀레니움을 활용하여, 노션에서 티스토리로 자동 업로드를 실행하던 도중. 위와 같은 에러가 발생함.
- 생각해보니 크롬 웹드라이버를 설치하지 않았던 것 같아서, 내 버전에 맞는 크롬 드라이버를 설치함
- M1으로 분류된 항목이 없어서,
arm64
로 설치
- M1으로 분류된 항목이 없어서,
- 하지만 실행을 하니, 셀레니움을 로드할 때 아래의 에러가 발생함
ValueError: There is no such driver by url https://chromedriver.storage.googleapis.com/106.0.5249.61/chromedriver_mac_arm64.zip/107.0.5304.62/chromedriver_mac64_m1.zip
👿 원인
- 코드상에서
from webdriver_manager.chrome import ChromeDriverManager
으로, 크롬의 웹드라이버 매니저를 import 하는데 이 때, 버젼을 받아오는 과정에서 에러가 발생함
- 크롬드라이버 사이트를 확인해보니,
- 이전 버전에선
chromedriver_mac64_m1.zip
의 형태로_m1
키워드가 파일명에 포함되고 있는데
- 최신의 버전으로 갈 수록,
_m1
이란 키워드가 사라지고 arm64로 대체되고 있음
- 이전 버전에선
- 에러의 url로 접속해보면, 해당 파일명의 드라이버가 없어서 에러 페이지로 연결됨을 확인할 수 있음
- 따라서 새롭게 올라가는 파일명 형식으로의 대응이 필요함
추가내용
- 웹드라이버 매니저
webdriver-manager
는,selenium(셀레니움)
모듈의 웹드라이버 경로 지정의 번거로움을 해결해주는 하나의 모듈이다.- 셀레니움 사용시, 크롬의 웹 드라이버 경로를 사용자가 직접 지정하고 교차 검증까지 해야 한다.
- 하지만 위 웹드라이버 매니저를 설치하게 되면, 모듈이 알아서 버젼을 탐색 → 버젼에 맞는 웹드라이버 다운로드 및 경로를 한번에 셀레니움에 넘겨주게 된다.
- 따라서 기존에 설치된 웹드라이버 매니저가 이전 버전이어서, 새롭게 바뀌어 올라가는 파일명에 대응하지 못하고 있었다.
🤩 해결
pip uninstall webdriver_manager
pip install git+https://github.com/SergeyPirogov/webdriver_manager@master
- 기존 웹드라이브 매니저를 삭제하고, 최신의 버전으로 새롭게 설치한다.
📖 레퍼런스
https://stackoverflow.com/questions/74011776/valueerror-there-is-no-such-driver-by-url
https://github.com/SergeyPirogov/webdriver_manager/pull/445
반응형