무효 클릭 IP 추적 중...
파이썬/크롤링

[셀레니움 기초] StaleElementReferenceException 오류 해결

꼬예 2022. 4. 7.
[셀레니움 기초] StaleElementReferenceException 오류 해결

목차

    StaleElementReferenceException: stale element reference: element is not attached to the page document

    다른 블로그 포스팅에서 time.sleep() 주면 해결된다고 하는데 여전히 문제가 해결이 되시지 않는다면, 

    이 포스팅이 도움이 되실겁니다.

     

     

    제가 원하는 바는 아래와같이 네이버 쇼핑 검색창에 슬리퍼를 입력하고, 다시 그 부분을 지우고 싶었습니다.

     

    [셀레니움 기초] StaleElementReferenceException 오류 해결

        search_keyword = driver.find_element(by=By.XPATH, value='//input[@title="검색어 입력"]')
        search_keyword.send_keys(keyword)
        search_keyword.send_keys(Keys.RETURN)
        search_keyword.clear()

    그러면 위와 같이 코드를 적어 볼 수 있겠죠?

    하지만,

    StaleElementReferenceException: stale element reference: element is not attached to the page document

    에러가 발생합니다.

     

    왜냐하면 search_keyword.send_keys(Keys.RETURN)를 입력할때 번쩍하면서 새로 고침 될때, 기존에 정의했던 driver 객체를 사용할 수 없게 되기 때문입니다.(분명 태그 위치는 변함이 없습니다.)

     

    이럴땐 코드가 지저분해지더라도 아래와 같이 해당 driver객체를 재지정 해주시면 문제를 해결 할 수 있습니다.

        search_keyword = driver.find_element(by=By.XPATH, value='//input[@title="검색어 입력"]')
        search_keyword.send_keys(keyword)
        search_keyword.send_keys(Keys.RETURN)
    
        search_keyword = driver.find_element(by=By.XPATH, value='//input[@title="검색어 입력"]')
        search_keyword.clear()

     

     

     

    • 트위터 공유하기
    • 페이스북 공유하기
    • 카카오톡 공유하기
    이 컨텐츠가 마음에 드셨다면 커피 한잔(후원) ☕

    댓글

    꼬예님의
    글이 좋았다면 응원을 보내주세요!