Selenium을 이용해서 구글에 자동로그인을 하는 프로그램을 만들던 도중 그냥 할때는 잘되는데,
Headless 설정만 해주면 Element들을 못 찾는 문제가 발생했다 .
왜 그런지 검색을하다가 알게된 사실은, 보통 크롬 브라우저의 경우 아래와 같은 User-Agent 의 정보를 가지고 있다.
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Safari/537.36
그런데 Headless 로 요청할 때는 HeadlessChrome 이라고 User-Agent가 세팅되는 것을 알 수 있었다.
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/81.0.4044.122 Safari/537.36
이때 세팅을 강제로 Chrome으로 바꿔주면 된다.
이렇게 한 뒤에, 프로그램을 돌려보면 문제가 해결되는 것을 알 수 있다.
반응형
댓글