Selenium 셀레니움 element를 찾지 못할 때

네이버 지도같은 동적 사이트에서, 크롤링을 하기 위해 셀레니움을 활용해 요소 찾기를 시도했는데, 아무리 바꿔도, 셀렉터를 바꿔도 찾지 못한다

그럴 때는 내가 찾는 프레임의 body 안에 그 요소가 없는건데, html에는 iframe이라는 기술이 있어 html안에 다른 html을 집어넣을 수 있다.

그 iframe에 접근하는 방법

1
2
3
frame = browser.find_element(By.CSS_SELECTOR, "iframe#searchIframe")

browser.switch_to.frame(frame)

searchIframe 이라는 iframe에 접근해서 switch_to.frame() 을 통해 프레임을 iframe으로 바꿔주었다.

여기서 찾는 요소를 시도하면 찾을 수 있을 것이다.

댓글남기기