크롬드라이버 설정 방법 - Windows (2023 Aug)

Page content

개요

  • selenium 4.10 버전에서 크롬드라이버 설정하는 방법에 대해 기술하고자 한다.

크롬 버전 확인

  • 크롬 버전 확인은 아래와 같이 진행한다.
  • 먼저 설정을 클릭한다.

Untitled

  • Chrome 정보를 클릭한다.

Untitled

  • 본인의 크롬 버전을 확인한다.

Untitled

크롬 드라이버 다운로드

Untitled

Untitled

  • 필자의 경우 크롬 버전은 115.0.5790.110 이지만 Status가 X로 되어 있다. 이럴 경우 115.0.5790.102 버전을 선택 한다.

Untitled

  • 위 화면에서 chromedriver를 본인 컴퓨터 OS에 맞는 것을 찾아서 다운로드 받는다.
    • 다운로드를 받은 후, 압축파일을 풀면 끝이다.
    • chromedriver.exe 파일을 적당한 곳에 놓는다.

selenium 버전 확인

  • 먼저 selenium 버전은 아래와 같다.
  • 설치 방법
pip install selenium
  • 버전은 아래와 같다.
import selenium
print(selenium.__version__)
# 4.10.0

크롬드라이버 수동 설정

  • 특정 경로에 chromedriver.exe 파일을 설치한다.
  • 필자의 경로는 다음과 같다.
import os

def list_files(startpath):
    for root, dirs, files in os.walk(startpath):
        level = root.replace(startpath, '').count(os.sep)
        indent = ' ' * 4 * (level)
        print('{}{}/'.format(indent, os.path.basename(root)))
        subindent = ' ' * 4 * (level + 1)
        for f in files:
            print('{}{}'.format(subindent, f))

list_files("resource")
resource/
    windows_115.0.5790.102/
        chromedriver.exe

코드 테스트

  • 크롬드라이버 경로를 지정 후 아래 코드를 실행한다.
from selenium import webdriver
from selenium.webdriver.chrome.service import Service

CHROME_DRIVER_PATH = '/resource/windows_115.0.5790.110/chromedriver.exe'
service = Service(executable_path=CHROME_DRIVER_PATH)
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(service=service, options=options)

driver.get('https://www.naver.com/')

Untitled

  • 드라이버를 종료하고 싶다면 아래와 같이 코드를 실행한다.
driver.quit()
  • 위 방식은 하나의 치명적인 단점이 존재한다. 위의 코드는 매우 잘 작동하지만 Chrome이 새 버전으로 업그레이드될 때마다 ChromeDriver를 다시 다운로드해야 한다. 매우 불편하다.

webdriver-manager 라이브러리

  • 이 부분을 해결하고자 라이브러리가 나왔다.
pip install webdriver-manager
  • 코드는 간단하다.
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))
driver.get('https://www.naver.com/')

Untitled

강의 소개

  • 필자의 강의를 소개합니다.