파이썬 셀레니움으로 코딩을하다 보면 아래와 같은 에러 메시지를 발견하게 됩니다.
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")
그러면 실행할때 웹드라이버를 다운받고 이후에 실행하게 됩니다.
정상적으로 잘 실행되는 것을 알 수 있습니다.
그럼 잘 사용하시기 바랍니다.
'Programming > Python' 카테고리의 다른 글
파이썬 예외 처리하기 Try, Except (0) | 2022.11.07 |
---|---|
파이썬 Workbook contains no default style, apply openpyxl's default 에러 발생시 해결방법 (0) | 2022.09.28 |
파이썬 - selenium으로 원하는 웹페이지 클릭하는 방법 (0) | 2022.09.20 |
파이썬 판다스 기초 - 데이터 정보 확인 및 숫자로 변환 (0) | 2022.09.02 |
파이썬 폴더/파일 관련 OS패키지 명령어 정리 (0) | 2022.09.01 |