웹페이지상으로는 동일한 페이지 같지만 iframe과 같이 다른 곳에서 컨텐츠를 불러오는 경우에는 일반적인 방법으로 요소를 찾을 수 없습니다
해당 요소를 찾을 수 없다는 NoSuchElementException와 같은 오류가 발생하기도하죠
이 경우 selenium을 iframe으로 접근시켜줘야 하는데요
네이버 증권 재무제표에 접근해보면서 알아볼께요
종목분석은 네이버 증권 페이지이지만 그 밑으로는 iframe 컨텐츠입니다
"재무분석"과 같은 요소는 selenium에서 찾을 수 없다고 나옵니다
아래 코드로 selenium이 iframe으로 접근하도록합니다
id를 통해 접근하고자하는 iframe을 찾고
switch_to.frame을 통해 iframe에 접근합니다
iframe = driver.find_element(By.ID, "coinfo_cp")
driver.switch_to.frame(iframe)
정상적으로 클릭까지 진행되는 모습
전체코드는 다음과 같습니다
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import Select
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
option = Options()
# option.add_argument('--headless')
option.add_argument('--disable-gpu')
# option.add_argument('--window-size=1920,1080')
option.add_argument('--start-maximized')
service = Service()
# service.creation_flags = CREATE_NO_WINDOW
driver = webdriver.Chrome(service=service, options=option)
driver.get('https://finance.naver.com/item/coinfo.naver?code=086520')
iframe = driver.find_element(By.ID, "coinfo_cp")
driver.switch_to.frame(iframe)
link_element = driver.find_element(By.LINK_TEXT, "재무분석")
link_element.click()
728x90
'플그래밍 > 파이써언' 카테고리의 다른 글
[파이썬 & 크롤링] 쿠팡 상품 리뷰 추출 자료 무료 나눔 (17) | 2023.08.09 |
---|---|
[파이썬 & 크롤링] Selenium - 팝업 닫는 법 (0) | 2023.08.04 |
[파이썬 & 크롤링] Selenium "Select" - 드롭다운 옵션 추출 법 (0) | 2023.08.04 |
[파이썬 & 크롤링] Selenium "Select" - 드롭다운 옵션 선택 법 (1) | 2023.08.04 |
[파이썬 & 크롤링] Naver 증권 리서치 리포트 모아보기 (3) | 2023.07.29 |