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

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

꼬예 2022. 4. 7.
StaleElementReferenceException: stale element reference: element is not attached to the page document

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

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

 

 

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

 

    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()

 

 

 

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

댓글