인프런 커뮤니티 질문&답변
셀레니움 버전 변경으로 인한 코드 변경
해결된 질문
작성
·
1.3K
0
06:00부에서 오류가 생겨서 찾아보았음.
기존 강의에서는
elems = driver.find_elements_by_id('begin')이 정상적으로 작동되었으나 셀레니움 버전 4.3.0(최신버전)부터는 "find_element_by_* & find_elements_by"를 제거하였다. 따라서 아래와 같은 코드를 쓰면 정상 작동될 것이다.
elems = driver.find_elements("id", "begin")
전체코드
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
# 드라이버 생성
# chromedriver 설치된 경로를 정확히 기재해야 함
chromedriver = 'C:\dev_python\Webdriver/chromedriver.exe' # 윈도우
#chromedriver = '/usr/local/Cellar/chromedriver/chromedriver' # 맥
driver = webdriver.Chrome(chromedriver)
# 크롤링할 사이트 호출
driver.get("https://davelee-fun.github.io/blog/crawl_html_css.html")
time.sleep(1)
# 여기에 작성해보세요
elems = driver.find_elements("id", "begin")
for index in elems:
print(index.text)
driver.quit()
혹시나 헤매시는 분들을 위해 끄적여 봅니다.
답변 1
1
안녕하세요. 답변도우미입니다.
허걱, 본래는 해당 함수가 버전이 업데이트되면서, 새로운 함수를 제공하지만, 그렇다고 해서, 기존 함수가 동작을 안하는 경우는 극히 드물거든요. warning 메세지로 새로운 함수를 가이드하긴 하지만, 기존 함수를 동작안시키면, 관련 라이브러리를 쓴 모든 코드가 다 동작을 안하는 상황이 되기 때문에, 지원을 하는 것이 일반적입니다. 또 이런 경우가 파이썬 라이브러리에서 상당히 빈번하기도 하거든요. 그래서 아예 warning 메세지는 안보여주도록 하는 별도 명령도 있어서, 이 부분은 신경안쓰셔도 괜찮다고 전에 답변으로 설명을 드리기도 하였는데요.
오늘 갑자기 두 분께서 이야기를 하신 것을 보니, 아예 신규 버전에서는 해당 기존 함수를 못쓰게 바꾼 것 같습니다. 공지하고, 자료를 업데이트하도록 하겠습니다.
갑자기 코드가 동작을 안해서, 상당히 당황하셨을텐데, 이렇게 가이드까지 해주셔서 감사합니다.
감사합니다.





