Programing/Python

[Selenium] iframe

hye3193 2024. 4. 5. 01:43

웹 페이지를 탐색하다 보면 분명 xpath 등을 그대로 복사해왔는데도 요소가 찾아지질 않는 문제가 발생하기도 한다

이는 iframe(inline frame, 페이지 속의 페이지) 때문이고, 해결하기 위해서는 해당 요소가 들어있는 iframe으로 이동한 뒤에 해당 요소를 찾아주어야 한다

 

ifrm = driver.find_element(By.CSS_SELECTOR, '#ifrm')
driver.switch_to.frame(ifrm)

iframe도 다른 html 요소들과 마찬가지로 selector나 xpath등이 존재하기 때문에 이를 이용하여 찾아주고, switch_to.frame() 함수를 이용해서 이동해 주면 된다

 

만약 iframe 안에 있는 iframe으로 이동하기 위해서는 위 과정을 두 번 거쳐 주면 된다

iframe 내에서 요소를 찾은 뒤에는 다시 iframe 밖으로 나와주어야 하는데, 두 가지 방법이 있다

 

driver.switch_to.parent_frame()

1. 부모 프레임으로 이동(부모가 iframe일 경우, 해당 iframe으로 이동)

 

driver.switch_to.default_frame()

2. 가장 바깥의 기본 프레임으로 이동

'Programing > Python' 카테고리의 다른 글

[Selenium] Expected Conditions(EC)  (0) 2024.04.05
[Selenium] 드롭다운 메뉴 선택하기  (0) 2024.04.05
[Selenium] handle  (0) 2024.04.05
[Selenium] 파이썬으로 Chrome 조작하기  (0) 2024.04.05