QA/Selenium

셀레니움 사용 시 ChromeDriverManager 오류 해결 방법

yoneeee 2025. 1. 22. 21:41

회사에서 하도 웹자동화 구축하라고 해서 셀레니움 공부 시작 .. ! 

 

셀레니움 설치하고 페이지 로딩하려고 했을 때 아래와 같은 에러  나는 이유는

크롬드라이버 버전이 현재 사용중인 크롬 브라우저 버전과 호환이 되지 않아서 발생한다.


selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports 

 

예전에는 크롬드라이버를 크롬 버전에 맞게 업데이트를 해줘야 했는데

이제는 WebDriverManager를 사용하면 ChromeDriver 버전을 자동으로 관리할 수 있다.

 

WebDriverManager 설치 과정은 아래와 같다.

 

pip install webdriver-manager

 

자동 버전 관리 코드

 

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

# WebDriverManager로 ChromeDriver 자동 관리
driver = webdriver.Chrome(ChromeDriverManager().install())

# 테스트 URL 열기
driver.get("https://www.google.com")
print(driver.title)
driver.quit()

 

근데 위처럼 짰더니 "AttributeError: 'str' object has no attribute 'capabilities'" 이런 에러가 발생하는 경우가 있다.

(내가 그랬음)

 

이 문제는 Selenium 4.10.0 이상의 버전에서 webdriver.Chrome() 호출 시, ChromeDriverManager().install()의 반환값이 올바르게 처리되지 않았을 때 발생한다고 한다.

ChromeDriverManager().install()은 **드라이버 경로(문자열)**를 반환하지만, Selenium에서는 이를 Service 객체로 명시적으로 설정해야하기 때문에 Service 객체를 명시적으로 사용하여 드라이버를 초기화해야 한다.

 

아래의 코드로 초기화하면 해결 !

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

# Service 객체를 생성하여 경로 설정
service = Service(ChromeDriverManager().install())

# WebDriver 초기화
driver = webdriver.Chrome(service=service)

# 테스트 실행
driver.get("https://www.google.com")
print(driver.title)
driver.quit()

 

이거로 아까운 15분 날렸 .. 

다들 저랑 같은 문제 발생하신 분들 해결하길 바래용