[Python] Selenium 버전4 Deprecated 오류 메시지 해결 방법
1. Selenium 버전4 업데트에 따른 Deprecated 메시지
Selenium(셀레니움) 버전이 4.0으로 업데이트되면서, 기존에 셀레니움 3.0 버전으로 작업한 것들은 Deprecated(더 이상 사용되지 않는) 메시지가 발생됩니다.
앞으로는 변경된 Selenium(셀레니움) 버전이 4.0으로 사용을 하시는 것이 더 편할 것이므로, 변경된 문법을 알아두는 것이 좋습니다.
2. Selenium 버전3 문법
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option("useAutomationExtension", False)
driver = webdriver.Chrome(executable_path=CHROMEDRIVER_PATH, options=options)
driver.find_element_by_class_name("className");
driver.find_element_by_css_selector(".className");
driver.find_element_by_id("elementId");
driver.find_element_by_link_text("linkText");
driver.find_element_by_name("elementName");
driver.find_element_by_partial_link_text("partialText");
driver.find_element_by_tag_name("elementTagName");
driver.find_element_by_xpath("xPath");
3. Selenium 버전4 문법
By.ID 태그 id 값으로 추출
By.NAME 태그 name 값으로 추출
By.XPATH 태그 경로로 추출
By.LINK_TEXT 링크 텍스트 값으로 추출
By.PARTIAL_LINK_TEXT 링크 텍스트의 자식 텍스트 값 추출
By.TAG_NAME 태그 이름으로 추출
By.CLASS_NAME 태그 클래스명으로 추출
By.CSS_SELECTOR 선택자로 추출
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option("useAutomationExtension", False)
service = ChromeService(executable_path=CHROMEDRIVER_PATH)
driver = webdriver.Chrome(service=service, options=options)
from selenium.webdriver.common.by import By
driver.findElement(By.className("className"));
driver.findElement(By.cssSelector(".className"));
driver.findElement(By.id("elementId"));
driver.findElement(By.linkText("linkText"));
driver.findElement(By.name("elementName"));
driver.findElement(By.partialLinkText("partialText"));
driver.findElement(By.tagName("elementTagName"));
driver.findElement(By.xpath("xPath"));
4. Deprecated 오류 및 셀레니움 로그만 제외 시 적용코드
Deprecated 메시지와 셀레니움 로그만 무시하고 사용할 수도 있습니다. 아래 코드를 참고하시기 바랍니다.
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import warnings
chrome_options = Options()
chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"]) # 셀레니움 로그 무시
warnings.filterwarnings("ignore", category=DeprecationWarning) # Deprecated warning 무시
browser = webdriver.Chrome("c:/chromedriver.exe", options=chrome_options)
5. Closing
셀레니움 버전이 업그레이드되면서, 일부 사용되는 문법이 바뀌었습니다. 아무래도 변경된 문법에 적응을 하는 게 좋을 것 같아서 이번 글에서는 셀레니움 버전4로 바뀌면서 변경된 문법에 대해 알아보았습니다.
추가로 궁금하신 사항은 아래 글을 참고하시기 바랍니다. 감사합니다.
Upgrade to Selenium 4
Are you still using Selenium 3? This guide will help you upgrade to the latest release!
www.selenium.dev
댓글