[Daily Post]는 매일매일 탐구한 내용을 간략하게 기록하는 포스트입니다.
따라서 정리되지 않은 내용과 추측을 포함하고 있을 수 있습니다.
더 체계적인 형식을 갖춘 글은 해당 카테고리의 포스트를 확인해주세요 :)

Daily Study

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[id="gsYear"]"}

목록에서 내가 원하는 값을 선택하는 코드를 짜야하는데 코드가 목록 자체를 못 찾고 있었다.

  • method는 기본적으로 CSS selector를 통해 요소에 접근하도록 되어있나보다.
  • 내가 고르려는 콤보박스는 id, XPATH로 접근할 수 있을 것 같다
  • 오히려 CSS selector는 내가 여태까지 봐왔던 형태와 조금 다르다. 예시를 들어보면 아래와 같다.
    • 기존에 보던 형식: body > div > div.publicInfo > div.selects-group > div
    • 해당 콤보박스의 형식: #gsYear
  • 14:58 부로 해결 방법을 찾았다. 정답은 시간차를 고려하여 코드를 짤 것이었다.
    • 내 눈으로는 콤보박스가 표시된 것처럼 보이지만, 실제 코드의 실행 속도측면에서 보면 아직 콤보박스가 로딩되지도 않았는데 값을 찾아오라고 하니 찾질 못하고 코드가 죽어버리는 것이었다.
    • 그래서 콤보박스 find_by를 하는 행 위에 sleep(0.5)만을 추가해줬는데 코드가 정상 실행됐다. 이렇게 또 하나를 배운다.