제로베이스 데이터 취업 스쿨 5주차 스터디노트 2호
Selenium에는 select element에 대하여
보조해주는 API가 존재한다. >>> 문서
사실 selenium과 같은 웹페이지 조작 프로그램?을 써본 경험이 있는데,
드롭다운이 꽤나 불편했던 기억이 있다.
selenium도 마찬가지이니 이런 support feature을 제공하는 것이 아닐까 싶다.
suburb_lv2 = driver.find_element(By.ID, "SIGUNGU_NM0")
select = Select(suburb_lv2)
select.select_by_index(1)
select.select_by_index(2) # Error
위 코드에서 에러가 발생하였다.
원인은 Selenium을 활용하여 조작하는 페이지가
위의 select를 선택했을 때 DOM을 재구성하는 페이지였기 때문이다.
즉, select 변수는 select의 항목 선택 전의 select를 참조한다.
그런데 select_by_index(1)을 실행하여,
웹페이지가 다시 렌더링되면
select 항목 선택 전의 select는 웹페이지에서 제거된다.
그리고 새로운 select가 생기는데,
이 새로운 select를 참조하는 것이 아닌
제거된 select를 참조하기 때문에 에러가 발생하였다.