2022-07-21 22:20:30

안녕하세요. 비스카이비전입니다. 불과 며칠 전까지 실행했었던 셀레니움 크롤링 코드를 오늘 새로운 환경에서 실행해보니 다음과 같은 에러 메시지가 나왔습니다. 

 

AttributeError: 'WebDriver' object has no attribute 'find_element_by_css_selector'

 

 

WebDriver 객체는 find_element_by_css_selector라는 속성이 없다는 것입니다. 최근 버전의 selenium에서는 더 이상 find_element_by_css_selector라는 놈을 쓸 수 없다는 것입니다. 참고로 지금 제가 사용한 selenium의 버전은 4.3.0입니다.   

 

find_element_by_css_selector의 시대는 갔다

이제는 find_element_by_css_selector 대신 find_element 메소드를 사용해야 합니다. 대략적인 사용법은 다음과 같습니다. 

 

from selenium.webdriver.common.by import By

driver.find_element(By.CSS_SELECTOR, 'CSS 셀렉터')

 

변화에 잘 적응하자

파이썬 라이브러리는 계속해서 발전되어 갑니다. 셀레니움 라이브러리를 만들고 유지보수하고 있는 개발자들이 기존 find_element_by_css_selector에 부족함을 느꼈기 때문에 개선을 한 것입니다. 우리는 이런 경우 당황하지 말고, 기존의 코드를 잘 수정하면 됩니다. 그렇지 않으면 우리의 코드, 우리의 프로그램은 곧 생명을 잃고 말 것입니다. 

 

관련 글

[python] selenium으로 크롤링하는 중에 click() 안 먹힐 때