• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 엔지니어링

  • 해결 여부

    미해결

Selenium 기본 사용법3-다양한 기법으로 원하는 데이터 선택하기 9:25초 부분 질문드립니다.

21.12.10 16:32 작성 조회수 241

0

안녕하세요! Selenium 기본 사용법3-다양한 기법으로 원하는 데이터 선택하기 9:25초 부분 질문드립니다. id ('navbarMediumish')로 찾는 법 코드로 실행하였더니 다음과 같은 에러메시지를 얻었습니다.

C:\Users\user\AppData\Local\Temp/ipykernel_20164/4006082881.py:7: DeprecationWarning: find_element_by_* commands are deprecated. Please use find_element() instead
  elem = driver.find_element_by_id('navbarMediumish')

그래서 강사님이 조언 주신대로 구글링을 통하여 다음과 같이 전체 코드를 작성해보았는데요. 에러메시지는 없어졌으나 여전히 결과값이 프린트 되지 않아 조언 구하게되었습니다. 조언 주시면 감사하겠습니다.

from selenium import webdriver from selenium.webdriver.common.by import By chromedriver='C:/ej_python/Webdriver/chromedriver.exe' driver = webdriver.Chrome(chromedriver) driver.get("https://davelee-fun.github.io/") elem = driver.find_element(By.ID, 'navbarMediumish') print (elem.text) driver.quit()

답변 1

답변을 작성해보세요.

0

안녕하세요. 

DeprecationWarning 은 신경 안쓰셔도 되요. 이것은 말그대로 일종의 noti 예요. selenium 버전이 어떤 버전인지 잘 모르겠지만, 저는 해당 noti 가 안나오고 다음과 같이 정상 출력되는데요. 완전 최신 selenium 버전이 또 있나보네요. 해당 버전에서는 find_element_by_* 명령이 안되는 것이 아니라, 잘 되는데, 우리가 find_element 신규 함수를 만들었으니, 이를 써봐라 정도라서요. 보통 라이브러리가 수시로 변경되면서, 수시로 함수가 바뀌면, 기존 코드가 정상동작하지 않기 때문에, 신규 버전을 만들어도, 기존 코드가 정상동작하도록 기존 함수는 그대로 지원을 하며, 대신에 가볍게 noti 를 하는 경우가 많습니다.

공식문서에서도 기존 함수들 모두 공식적으로 설명을 하고 있고요.

https://selenium-python.readthedocs.io/locating-elements.html

기존에 제가 제공해드린 코드대로만 쓰셔도 좋습니다. 그리고 해당 코드는 제가 오늘도 실행해봤지만 정상동작을 합니다. 개인 PC 상의 또다른 에러 예를 들어 chromedriver 가 버전이 안맞는다든지 그런 메세지가 있으신 것 아닌가도 싶은데 확인해보시는 것이 어떨까요? 보통 에러 메세지도 잘 읽어보려고 해서 조금 이해를 하고, 그 이후에 해당 에러 메세지로 구글링을 해볼 수 있는 정도가 되어야, 이제 어느 정도 프로그래밍을 활용하고, 다음 단계로 나아가실 수 있거든요.