selenium (webdriver DeprecationWarning) 오류 해결 방법
※저는 vscode 툴을 사용중에 있습니다. 파이참과 같은 다른 툴은 아래의 해결방법이 안먹힐 수 있으니 주의하시고 봐주시길 바랍니다.
오류 발생 원인
크롬 드라이버를 사용한 프로젝트를 진행 중 갑작스런 오류가 발생했습니다. 위의 사진에서 나타난 것 처럼 DeprecationWarning: executable_path has been deprecated, please pass in a Service object 오류가 발생했는데 이는 selenium의 버전이 3대에서 4대로 업데이트되면서 명령어 일부의 사용법이 바뀐 것 같습니다. 아마 저도 모르게 selenium이 업데이트 되면서 명령어 문법도 달라져서 오류가 발생한 것 같습니다.
find_element_by_xpath 문법도 달라져 오류가 발생한 것 을 볼 수 있습니다. AttributeError: 'WebDriver' object has no attribute 'find_element_by_xpath'으로 오류가 나타났다는 문구가 보이는데 3대 버젼에서 사용한 방식과는 다르게 문법을 구성해야 되나봅니다.
문법 변경
driver = webdriver.Chrome(r'chromedriver.exe')
↓ (다음과 같이 변경했습니다.) service 라이브러리를 사용하여 별다른 크롬드라이버의 삽입없이 자동으로 쓸 수 있는 방식으로 바꼈습니다.
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.find_element_by_xpath("xpath 주소")
↓ (다음과 같이 변경했습니다.) by_path가 없어지고 매개변수칸에 by=By.XPATH로 설정하는 것으로 바꼈습니다.
id_input = driver.find_element(by=By.XPATH, value='xpath주소')
위의 문법을 사용하기 위해서는 아래의 라이브러리들을 import해줘야 합니다.
from selenium import webdriver
import time
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
해결
위의 내용들을 변경, 추가 후 run을 진행했는데 잘 실행되는 것을 볼 수 있었습니다.
'Information Communication Technology > Python' 카테고리의 다른 글
[Python] pyautogui로 구글 크롬 접속하기 (0) | 2022.10.30 |
---|---|
[Python] pyautogui 기초 함수 정리 (0) | 2022.10.29 |
[Python] pyautogui 다운로드 설치 방법 (0) | 2022.10.29 |
파이참 Pycharm 설치 (0) | 2022.10.15 |
[Python] 파이참 selenium 간단 설치방법 (0) | 2022.10.14 |