RPA/Python

[selenium] iframe 내 Element 접근 (checkbox, radio, select 태그)

꼰대 2021. 5. 6. 01:04

페이지에 iframe이 있다면 iframe 내 Element는 직접 접근 안된다.

먼저 접근하려는 Element가 있는 iframe으로 전환 후 Xpath로 접근하여 처리하고 다시 빠져 나온다.

 

from selenium import webdriver

 

 

driver = webdriver.Chrome()

driver.get('https://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_input_type_checkbox')

 

# iframe id값을 이용해 프레임 전환

driver.switch_to.frame('iframeResult')

 

# Xpath로 해당 checkbox/radio button 접근 후 클릭

elem = driver.find_element_by_xpath('//*[@id="vehicle1"]')

 

# 체크박스가 선택 안되어 있다면 선택

if elem.is_selected() == False:

    elem.click()

 

# 전환했던 iframe의 상위로 전환 (원래 페이지로 빠져 나옴)

driver.switch_to.default_content()

 

 

# 참고 내용

# 만약 select 태그면 option의 Xpath값을 찾는다.

# elem = driver.find_element_by_xpath('//*[@id="cars"]/option[4]')

# option의 text값으로 찾는 방법도 있다.

# elem = driver.find_element_by_xpath('//*[@id="cars"]/option[text()="Audi"]')

# option의 text값 중 일부 일치 찾기

# elem = driver.find_element_by_xpath('//*[@id="cars"]/option[contains(text(), "Au")]')

반응형