기존에는 아래와 같이 "chromedriver경로" 에 여기로부터 크롬 드라이버 최신 버전을 다운받아 크롬 웹 드라이버를 실행하고 있었습니다.
from selenium import webdriver
def set_chrome_driver():
chrome_options = webdriver.ChromeOptions()
driver = webdriver.Chrome("chromedriver경로", options=chrome_options)
return driver
그런데 어느 순간부터 pytest 실행 시 아래와 같은 warning이 뜨기 시작했습니다.
DeprecationWarning: executable_path has been deprecated, please pass in a Service object
$ pip install webdriver-manager
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
def set_chrome_driver():
chrome_options = webdriver.ChromeOptions()
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options)
return driver
pytest 재실행 시, 아래와 같이 warning 없이 깔끔하게 테스트 결과 노출되는 것을 확인할 수 있었습니다.
예전에는 다운받은 크롬 드라이버가 현재 사용중인 크롬 브라우저 버전보다 낮아서 발생하는 SessionNotCreatedException을 많이 겪었었는데, 이제 더 이상 수동으로 크롬 드라이버를 다운받을 필요가 없어 편해졌네요 :)