[에러 리포트] 파이썬 셀레니움, ValueError: There is no such driver by url

SHORTCUT

    반응형
    개발 환경 - device : 2021 Macbook Pro M1 Pro 14inch(맥북프로 14 M1 Pro 모델) - OS : macOS Monterey 12.5.1
    ⚠️
    본 포스팅은 저의 개인적 생각을 기반으로 작성되었습니다. 따라서 정답이 아닌, 에러 해결을 위한 하나의 과정으로서 참고하시길 바랍니다. *수정이 필요한 부분이 있을 경우, 댓글로 알려 주시면 수정하도록 하겠습니다😄

    📌 에러 내용 및 상황

    • 셀레니움을 활용하여, 노션에서 티스토리로 자동 업로드를 실행하던 도중. 위와 같은 에러가 발생함.
    • 생각해보니 크롬 웹드라이버를 설치하지 않았던 것 같아서, 내 버전에 맞는 크롬 드라이버를 설치함
      • M1으로 분류된 항목이 없어서, arm64로 설치
    • 하지만 실행을 하니, 셀레니움을 로드할 때 아래의 에러가 발생함
    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로 접속해보면, 해당 파일명의 드라이버가 없어서 에러 페이지로 연결됨을 확인할 수 있음
    • 따라서 새롭게 올라가는 파일명 형식으로의 대응이 필요함
    🚨
    ::결론:: 드라이버 파일명이 _arm64 로 바뀌어 업로드 되고 있으나, 웹드라이버 매니저가 이를 캐치하고 못하고 있음

    추가내용

    • 웹드라이버 매니저 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

    반응형

    댓글

    Designed by JB FACTORY