Selenium을 사용하다 보면 가끔 화면에 보이는 엘레멘트를 찾지 못한다는 에러가 발생한다.
이럴 때는 보통 iframe으로 인해 발생하는 경우이다. 해당 문제의 해결법을 정리해보려 한다
🤔 iframe?
- iframe이란 inline frame의 약자로 쉽게 말해 페이지 안의 페이지이다.
먼저 예시를 확인해보자
사진처럼 일단 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 |