DeprecationWarning: executable_path has been deprecated 해결하기
상황
기존에는 아래와 같이 "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
해결 방법
- webdriver-manager 패키지를 설치합니다.
$ pip install webdriver-manager
- 아래와 같이 Service 객체에 webdriver-manager의 ChromeDriverManager를 사용하여 크롬 드라이버를 다운받은 경로가 아닌 현재 OS에 설치된 크롬 브라우저를 사용하도록 수정합니다.
(참고로, 'service' 키워드 인수는 Selenium 4부터 사용되는 거 같습니다.)
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을 많이 겪었었는데, 이제 더 이상 수동으로 크롬 드라이버를 다운받을 필요가 없어 편해졌네요 :)
Reference
Author And Source
이 문제에 관하여(DeprecationWarning: executable_path has been deprecated 해결하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sangyeon217/deprecation-warning-executablepath-has-been-deprecated저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)