파이썬 DeprecationWarning: executable_path has been deprecated, please pass in a Service object에러 해결하기

파이썬 셀레니움으로 코딩을하다 보면 아래와 같은 에러 메시지를 발견하게 됩니다.

 

DeprecationWarning: executable_path has been deprecated, please pass in a Service object라는 에러 메시지 인데요.

에러 메시지 원인

 

해당 에러는 셀레니움의 문법이 기존 문법인 셀레니움3로 작성되었을때 나타나는 에러인데요.

 

이 경우 해결하는 방법은 버전업된 셀레니움4에 맞춰서 코드를 짜면 됩니다.

 

셀레니움4에서 큰 차이는 webdriver-manager를 통해서 크롬 웹드라이버의 최신버전을 항상 사용할 수 있는 점인데요.

 

기존에는 웹드라이버를 다운받아서 지정 경로를 설정하는 방식이었기 때문에 문법이 다릅니다.

 

먼저 웹드라이버매니저를 설치하고 난 다음 이제 문법에도 수정을 해야하는데요.

pip install webdriver-manager

기존에 크롭웹드라이버는 별도로 설치한다음 폴더를 지정하는 형태였습니다.

 

즉 셀레니움 3에서 웹드라이버를 호출하는 방식은 아래 방식인데요.

browser = webdriver.Chrome('C:\python\chromedriver.exe', options=options) 

 

동일한 문법을 셀레니움4에서는 아래의 문법으로 해결합니다.
browser = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)

 

그리고 ChromeDriverManager 패키지와 Service 패키지를 불러와야 합니다.

import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

options = Options()


options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36")
#options.add_argument("--window-size=1920x1080")
options.add_argument('--start-maximized')
options.add_argument('incognito')

#browser = webdriver.Chrome('C:\python\chromedriver.exe', options=options) 
browser = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)


browser.get("https://remake.tistory.com/16")

그러면 실행할때 웹드라이버를 다운받고 이후에 실행하게 됩니다.

정상적으로 잘 실행되는 것을 알 수 있습니다.

그럼 잘 사용하시기 바랍니다.