Selenium 환경 구축 [Mac] [Python3]

소개



브라우저 조작의 자동화에 임하기 위해서 selenum의 환경 구축을 한 곳 조금 집착했으므로 비망록으로서 남깁니다. 환경 구축으로 막혀 있는 사람의 참고가 되면 다행입니다.

내 환경


  • Macbook Pro 2020
  • macOS Catalina 10.15.7
  • Python 3.8.1


  • selenium 설치



    우선 필요한 패키지를 설치합니다.
    pip3 install selenium
    

    드라이버 설치



    계속해서 브라우저 고유의 드라이버의 인스톨을 합니다.
    여기에서는 Google 크롬만 해설하고 있습니다만, FireFox에서도 같은 방법으로 다운로드할 수 있다고 생각됩니다.
    (덧붙여서 FireFox의 드라이버 이름은 "geckodriver"라고 말하는 것 같습니다)

    [Google 크롬]
    HomeBrew로 설치하는 경우
    brew cask install chromedriver
    

    수행할 수 있는지 테스트


    from selenium import webdriver
    browser = webdriver.Chrome()
    

    잘 실행할 수 있을까 생각하고 다음 오류가 발생!
    브라우저도 일순간 일어나서 떨어진 모양··
    python3
    Python 3.8.1 (default, Feb 18 2020, 16:49:55)
    [Clang 11.0.0 (clang-1100.0.33.17)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    
    >>> from selenium import webdriver
    >>> browser = webdriver.Chrome()
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/usr/local/var/pyenv/versions/3.8.1/lib/python3.8/site-packages/selenium/webdriver/chrome/webdriver.py", line 76, in __init__
        RemoteWebDriver.__init__(
      File "/usr/local/var/pyenv/versions/3.8.1/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
        self.start_session(capabilities, browser_profile)
      File "/usr/local/var/pyenv/versions/3.8.1/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
        response = self.execute(Command.NEW_SESSION, parameters)
      File "/usr/local/var/pyenv/versions/3.8.1/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
        self.error_handler.check_response(response)
      File "/usr/local/var/pyenv/versions/3.8.1/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
        raise exception_class(message, screen, stacktrace)
    selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 81
    

    분명히 Chrome 버전과 드라이버 버전을 함께 사용하지 않으면 갈 수없는 것 같습니다.

    오류 원인 조사 및 설정 변경



    설치한 드라이버는 아무래도 version 81까지만 대응하고 있는 것 같습니다.
    그래서 먼저 Chrome 버전을 확인해 보겠습니다.

    주소 표시줄에 다음과 같이 입력하면 확인할 수 있습니다.
    chrome://settings/help

    최근 업데이트했으므로 최신판이 설치되어 있는 모양(86.0.4240.80)
    이 Chrome 버전에 있던 드라이버를 다운로드합니다.

    아래에서 다운로드할 수 있습니다.
    htps // ch 로메 d리ゔぇr. ch 로미우 m. 오 rg / w w ぉ ds



    zip 파일 때문에 다음 명령으로 압축 해제
    unzip chromedriver_mac64.zip
    または
    tar -xvf chromedriver_mac64.zip
    

    압축을 풀면 다음 파일을 사용할 수 있습니다.
    chromedriver
    

    이 파일을 pip3과 같은 계층 구조에 저장합니다.
    pip3의 계층은 아래에서 확인할 수 있습니다.
    which pip3
    /usr/local/var/pyenv/shims/pip3
    
    which python3
    /usr/local/var/pyenv/shims/python3
    

    이 'shims'라는 디렉토리에 'chromedriver'를 저장합니다.
    cd /usr/local/var/pyenv/shims
    
    pwd
    /usr/local/var/pyenv/shims
    
    ls -l | grep chrome
    -rwxr-xr-x@ 1 admin  admin  15720316 10 18 21:04 chromedriver
    

    저장할 수 있었습니다. 다시 테스트해 봅니다.
    실행하면 아래 팝업이 표시되었습니다. 모처럼 다운로드한 것을 삭제하고 싶지 않으므로 일단 취소를 클릭.



    🍎 → '시스템 환경설정' → '보안 및 개인정보 보호정책'에서 허용해야 합니다.





    제대로 Chrome이 시작되었습니다. 테스트 성공! !

    결론



    일단 환경 구축이 종료되었으므로 selenum을 사용하여 평소 작업의 자동화에 도전하고 싶습니다.

    좋은 웹페이지 즐겨찾기