본문 바로가기
파이썬/디버깅

셀레니움 오류 AttributeError: 'WebDriver' object has no attribute 'find_element_by_css_selector(xpath, class_name, id, link_text)' 해결방법

by startcoding 2022. 7. 11.

1. 오류상황

 

셀레니움이 4.3.0 버전으로 업데이트 되면서

더이상 find_element_by_* 종류를 사용할 수 없게 되었다. 

 

사용하려고하면 다음과 같은 오류 메시지를 뱉어버린다.

AttributeError: 'WebDriver' object has no attribute 'find_element_by_css_selector(xpath, class_name, id, link_text)'

 

2. 해결방법

find_element_by_css_selector
find_element_by_xpath
find_element_by_class_name                                  
find_element_by_id
find_element_by_link_text
find_element_by_name

-> 이제 find_element 한개로 통일 되었다.

find_element 메소드 사용방법은 다음과 같다.

 

from selenium.webdriver.common.by import By
driver.find_element(By.CSS_SELECTOR, "CSS선택자")
driver.find_element(By.XPATH, "XPATH")
driver.find_element(By.NAME, "NAME속성값")
driver.find_element(By.CLASS_NAME, "CLASS속성값")
driver.find_element(By.LINK_TEXT, "LINK텍스트")
driver.find_element(By.ID, "ID속성값")

 

 

라이브러리 개발도 다른 환경에 좌지우지되니까 코드 업데이트를 하는 것은 당연하지만,

사용하고 있는 사람들 생각을 최대한 해주면 좋겠다.

 

 

 

라이브러리 개발자 까는 것 아니다, 너무 고맙게 잘쓰고 있고
항상 감사하는 마음이다.

 

 

 

라이브러리 개발자들은

기존에 만들어진 문서나 강의자료를 생각해서라도, 잘 사용하고 있는 코드를 삭제하는 행위는

정말 불가피한 경우를 제외하고는 하지말아 주었으면.. 좋겠다.

(셀레니움 쪽이 특히 자주 바뀌는 것 같다)

 

 

온라인 강의와 유튜브 영상에서 수강생들이 똑같이 따라하는데 안된다고,

댓글을 주구창장 단다. 오프라인 수업에서도 해당 업데이트 때문에 20분이상 디버깅하느라 고생했다.

 

 

결론, 강의를 하는 사람들도 생각해주세요

 

 

 

안녕하세요.

코딩을 가장 쉽게 알려주는 크리에이터, 스타트코딩입니다.

 

제 글이 마음에 드셨다면,

저의 유튜브, 온라인 강의도 슬쩍 구경하고 가시죠.

https://www.youtube.com/channel/UCHwhZ7HPBhUh2IscPSL0pHA

 

스타트코딩

코딩 입문자들을 위해 쉽고 재미있는 강의컨텐츠를 만들고 있습니다~! [제작중인 컨텐츠] 파이썬기초 파이썬활용(크롤링, 자동화) 프론트엔드기초 (html, css, javascript, bootstrap)

www.youtube.com

 

https://class101.page.link/xq57

 

파이썬 크롤링, 자동화 프로그램 만들며 월 100만원 벌기 | 스타트코딩

100% 실제 스타트코딩 유튜브 구독자 반응 코딩을 배워서 돈을 번다? 코딩을 가르치는 저에게, 많은 사람들이 '코딩을 배우면 뭐가 좋아?'라고 물어봅니다. 예전에는 "네이버 같은 웹 사이트를 만

class101.net

 

댓글