개요

    네이버카페를 셀레니움으로 자동화할 때 분명 눈으로 보이는데 코드를 작성했을 때 선택이 안되거나 path로 검색을 했는데 찾을 수 없다고 나오는 경우가 있어서 어려움이 있을 때가 있다.

    그 이유와 해결방법은 매우 간단하다.

     

    iframe

    html을 배운 사람이라면 iframe을 알 것이다.

    inline frame의 약자로 웹 페이지 안에 다른 웹 페이지를 삽입하는 태그를 말한다.

     

    즉, 눈에는 동일한 웹 페이지처럼 보여도 네이버카페 일부 영역은 다른 웹페이지이기 때문에 선택이나 검색을 했을 때 찾을 수 없다는 오류가 발생하는 것이다.

     

    네이버카페 속 iframe 태그

    보는 것처럼 실제로 네이버카페에는 메인 컨텐츠가 들어있는 부분이 iframe name="cafe_mian"에 들어있다.

    selenium으로 접근을 할 때 css로 선택하든, js의 쿼리셀릭트로 선택하든, path로 선택하든 iframe 안에 들어가서 실행해야만 실제 원하는 값에 접근할 수 있게 된다.

     

     

     

    python selenium iframe 변경 코드
    from selenium import webdriver
    
    driver = webdriver.Chrome()
    # iframe으로 들어감
    driver.switch_to_frame("cafe_main")
    # 원래 frame으로 돌아옴
    driver.switch_to_default_content()

    파이썬에서 셀리니움 코드를 작성할 때 위와 같이 작성하면 원하는 iframe으로 이동하여 조작할 수 있게 된다.

    조작이 끝나고 원래 frame에서 조작을 해야하면 제일 아래 코드를 통해 돌아오면 된다.

     

    네이버카페 뿐 아니라 많은 사이트가 iframe을 사용하고 그것 때문에 오류가 생길 때가 있다.

    이 때 위와 같은 방법으로 해결이 가능하다.

     

    Photo by AltumCode on Unsplash

     

    ※ 함께 보면 좋은 글

     

    셀레니움 네이버 로그인 캡챠 피하기 클릭!

    유튜브 재생목록 총 재생시간 구하는 코드 클릭!

    셀레니움 네이버 검색광고 API 활용 잔액확인 하는 법 클릭!

    셀레니움 최신버전 iframe 문법 클릭!

    크롬 굵은 폰트 번짐 해결하는 방법 클릭!