본문 바로가기

[Python] Selenium 버전4 Deprecated 오류 메시지 해결 방법

I am bucks 발행일 : 2023-04-23

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

 

댓글