Dev/Python

TS | stale element reference 에러 해결

vanss 2023. 1. 30. 00:05

 

 

상황

 selenium 및 chromedriver를 활용한 크롤러 스크립트 코드를 돌리다가 stale element reference 에러가 계속적으로 발생하였다.

 

 

시도

 구글링을 통해 이 글에서 대략적인 이유를 알 수 있었는데, 요약해보자면 웹에서 크롤링한 a라는 element에 접근할 때, a element가 존재하지 않을 때 발생하는 에러다. 즉, 웹페이지가 빨리 넘어가버려서 a라는 element를 찾지 못해 발생하는 에러다. 해결하기 위해서는 time.sleep()을 이용해서 웹페이지가 빨리 넘어가지 않도록 해야한다. 하지만... 이미 time.sleep()을 활용해주고 있었기 때문에 계속 삽질을 할 수 밖에 없었다. 분명 나와 같은 상황이 발생한 분들도 계실거라 생각하기 때문에 삽질 시간을 줄여드리기 위해 적어본다.

 

 

해결

 혹시 몰라 다른 PC의 개발환경에서 스크립트를 돌려보니 정상적으로 돌아가는것을 확인할 수 있었고, 개발환경을 대조해보니 selenium의 버전차이 때문이였다. 뚜시..! 다른 PC에서는 4.2.0으로 돌아가고 있었고 나는 3.8.0이였다.. 나는 m1칩이다보니 4.2.0은 설치할 수 없었어서 4.0.0a6으로 업데이트를 하였고, 결과적으로 스크립트는 에러없이 정상적으로 작동하게 되었다.