Selenium 에서 iFrame 처리하는 방법 Python
2022. 2. 20. 20:59ㆍPython
728x90
반응형
Selenium 으로 자동화를 하는 중에 자주 만나는 문제가 바로 iFrame 으로 구성 된 Element 를 접근하는 것이다.
우리가 일반적으로 접근하려고 하는 방식으로 iFrame 을 접근하려고 하면 오류를 마주칠 것인데
이럴 때는 Selenium 에서 제공해주는 switch_to 를 사용해서 iFrame 으로 전환을 하고
다시 원래 element 로 돌아오는 방식으로 사용을 합니다.
# iFrame Youtube 재생 후 나오기
# 사용할 때
self.iFramePlay(10)
def iFramePlay(self,sec):
try:
driver = self._driver
iframe = driver.find_element_by_xpath(Script.IFRAME_ADDRESS)
driver.switch_to.frame(iframe)
# do something
playBtn = driver.find_element_by_xpath(Script.YOUTUBE_PLAY_BUTTON)
playBtn.click()
time.sleep(sec) # play time
except NoSuchElementException as e:
self.Logger(f'error - NoSuchelementException : {e}')
try:
# restore
driver.switch_to.default_content()
except NoSuchFrameException as e:
self.Logger(f'error - NoSuchFrameException : {e}')
728x90
반응형
'Python' 카테고리의 다른 글
원하는 비율로 문자 랜덤생성하기 List [Python] (0) | 2022.03.11 |
---|---|
Python 요일 표시하는 방법 (초간단) (0) | 2022.03.03 |
해결법 module 'datetime' has no attribute 'strftime' (0) | 2022.02.05 |
Python) Selenium IE Driver Pop-up 처리 (0) | 2021.02.01 |
Python) compare two image - use Pillow (0) | 2021.01.30 |