Selenium SessionNotCreatedException — ChromeDriver 버전 오류
Selenium 실행 시 SessionNotCreatedException이 발생하면 설치된 Chrome 브라우저 버전과 ChromeDriver 버전이 맞지 않는 것이 원인이며, webdriver-manager 라이브러리로 버전을 자동 관리하면 해결됩니다.
[01] 상황
-
webdriver.Chrome()으로 브라우저를 실행하면 현재 ChromeDriver 버전을 지원하지 않는다는 오류가 발생하고 실행이 중단된다.
1
2
3
options = webdriver.ChromeOptions()
options.add_experimental_option('excludeSwitches', ['enable-logging'])
browser = webdriver.Chrome(options=options)

그림 1. ChromeDriver 버전 불일치로 발생하는 SessionNotCreatedException 오류 화면
Chrome 브라우저가 자동 업데이트되면 기존에 수동으로 내려받은 ChromeDriver와 버전이 어긋나 이 오류가 반복적으로 발생한다.
[02] 해결방안
webdriver-manager 설치
1
pip install webdriver-manager
Python 코드 내부에 webdriver-manager 사용
기존 webdriver.Chrome(options=options) 호출 대신 ChromeDriverManager().install()로 드라이버 경로를 자동 지정한다.
1
2
3
4
5
6
7
8
9
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service
options = webdriver.ChromeOptions()
options.add_experimental_option('excludeSwitches', ['enable-logging'])
service = Service(ChromeDriverManager().install())
browser = webdriver.Chrome(service=service, options=options)
Selenium 4.x부터 드라이버 경로는
Service객체로 전달한다. 드라이버 경로를 첫 번째 위치 인자로 넘기는 Selenium 3 방식도 아직 동작하지만 폐기 예정이다.