Selenium을 사용하다 보면 가끔 화면에 보이는 엘레멘트를 찾지 못한다는 에러가 발생한다. 
이럴 때는 보통 iframe으로 인해 발생하는 경우이다. 해당 문제의 해결법을 정리해보려 한다

🤔 iframe?

  • iframe이란 inline frame의 약자로 쉽게 말해 페이지 안의 페이지이다.

먼저 예시를 확인해보자 

홈페이지 : https://www.mangoplate.com/

사진처럼 일단 iframe 태그에 있는지 확인을 한다. 확인이 되었다면 이제부터 iframe 전환 코드를 사용하면 된다.


 ▶︎ iframe 전환하기

#iframe 요소로 변경 
driver.switch_to.frame("iframe_name_or_id")

#iframe 전환이 완료되었다면 프레임 안에 있는 요소들을 찾아 진행을 하면 된다.
#예시
driver.find_element_by_id("element_id").click()

 

 ▶︎ iframe 태그 밖으로 나오기 

  • iframe을 한번 이동했으면 그 프레임 안에 또 다른 프레임이 있지 않은 이상 일단 디폴트로 빠져나온 후에 다른 프레임으로 이동해야 한다.
driver.switch_to.default_content() #메인프레임으로 이동
반응형

'🖥 Python' 카테고리의 다른 글

[Selenium] Elements 위치(좌표) 가져오기  (0) 2023.05.09
[Selenium] Element 텍스트 추출하기  (0) 2023.04.22
[Selenium] 페이지 스크롤 하기  (0) 2023.03.20
[Selenium] 창 컨트롤  (0) 2023.01.13
[Selenium] 시간 대기  (0) 2022.12.24
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기