에러 메세지
org.openqa.selenium.WebDriverException: java.net.ConnectionException:
Failed to connect to localhost/0:0:0:0:0:0:0:1:port
원인
정확한 원인은 모르겠어서 구글링을 아무리 이리저리 해봤으나 해결하지 못했고
위의 사진처럼 저런식으로 IPv4를 받아와서 해결했다는 사람도 있다고 하길래 해봤지만 나는 실패했다.
그거 외엔 아무리 구글링을 해봐도 시도해볼만한 거리가 없어서 고민하던 중에 공식문서를 보게 됐고
selenium 사용에 있어 내 코드와 뭐가 다른지 분석해 본 결과
driver.close()를 사용해 종료하는 반면, 공식문서에서는 driver.quit()으로 종료를 했고,
로그를 찍어본 결과.
selenium의 driver.close()메서드를 사용 시에 발생했다는걸 캐치했다.
해결
driver.close()를 quit로 바꿔주니 정상작동했다
※ driver.close() vs driver.quit()
close()는 현재 selenium webdriver가 활성화 되어있는 탭만 종료하는 반면
quit()는 dispose() 메서드를 불러와 열려있는 모든 webdriver를 종료하고 세션을 종료한다.
프로그램 종료 시 quit()을 사용하지 않는다면 세션이 완벽하게 종료되지 않아 메모리 누수가 발생할 수 있다.
하나의 탭을 사용한다고 하면 상관이없지만, 여러 탭이 열려있을 경우 문제가 발생할 수 있다.
나의 경우 사실 다른 컴퓨터로 크롤러를 장기간 돌려 데이터를 검증해야 하는 단계였기 때문에
close()메서드를 사용해도 상관없는 것 같은데
selenium을 사용하는 과정에서 크롬창이 하나만 열리지만
작업 관리자 창을 유심히 보니 세부정보 탭에 여러개의 크롬이 활성화 되어 있는 경우를 발견했다.
(참조)
https://www.educative.io/answers/what-is-close-and-quit-in-selenium-webdriver
어찌저찌 공식문서를 보고 잘 해결한 것 같다.
2023.04 ~ 백엔드 개발자의 기록
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!