본문 바로가기
Python/Django

[Selenium/Django] Chrome not Reachable / DevToolsActivePort file doesn't exist 에러

by _촌촌 2021. 11. 17.

웹 서버에서 크롬드라이버를 작동시키고자 하는데,

Chrome not reachable / DevToolsActivePort file doesn't exist 이 에러 때문에 몇날 며칠을 고생했는지 모르겠다. 

결론부터 말하자면 인터넷에 존재하는 어떤 모든 방법을 써도 다 안돼서 결국 서버를 종료 후 재시작했고 작동한다.

뭔가 서버상에 프로세스 충돌이 있었거나 했던 것 같다.

​--

먼저 DevToolsActivePort file doesn't exist 에러는 아래 옵션값을 추가하면 사라진다.

options.add_argument('--disable-dev-shm-usage')

그리고 아래는 Chrome not reachable 을 해결하기 위한 시도들​

1. options 수정 : 크롭 드라이버의 옵션값에 따라 오류가 발생하는 경우가 있다. 보통 no-sandbox 옵션값을 입력해주면 오류가 해결된다고 한다. 추가로 아래 옵션값 설명 참고.

options = webdriver.ChromeOptions()

options.add_argument('--no-sandbox')
options.add_argument('headless')  # headless모드 브라우저가 뜨지 않고 실행됩니다.

options.add_argument('--window-size= x, y')  # 실행되는 브라우저 크기를 지정할 수 있습니다.

options.add_argument('--start-maximized')  # 브라우저가 최대화된 상태로 실행됩니다.

options.add_argument('--start-fullscreen')  # 브라우저가 풀스크린 모드(F11)로 실행됩니다.

options.add_argument('--blink-settings=imagesEnabled=false')  # 브라우저에서 이미지 로딩을 하지 않습니다.

options.add_argument('--mute-audio')  # 브라우저에 음소거 옵션을 적용합니다.

options.add_argument('incognito')  # 시크릿 모드의 브라우저가 실행됩니다.

options.add_argument('--disable-dev-shm-usage')  # 크롬이 메모리 대신에 /tmp 디렉토리를 사용하게 함. 성능 저하 가능성 있음.

options.add_experimental_option("excludeSwitches", ["enable-logging"])  # 로그를 보여주지 않음

options.add_argument('--start-fullscreen')  # 크롬을 전체화면으로 실행함

2. 크롬, 크롬 드라이버, 셀레니움 버전 확인 및 재설치

-  설치된 크롬 브라우저와 크롬 드라이버의 버전이 일치해야한다.

- 혹시 모르니 셀레니움 버전도 호환성이 좋은 버전으로 설치되어있는지 확인한다.

3. 경로 수정, r추가, 절대경로

- 크롬드라이버 경로 지정의 문제일 수도 있다고해서, 경로를 수정해보고 절대경로로도 입력해보았다. 

- 현재는 아래와 같이 경로 표시

browser = webdriver.Chrome(executable_path='/usr/bin/chromedriver', options=options)

 

4. headless 코드 수정

- 셀레니움 버전에 따라 headless 옵션을 표현하는 방식이 다른데, 혹시나 이 문제일까 싶어 셀레니움을 버전별로 설치 후 옵션을 바꿔가며 해봤다. 물론 해결 안됨

options.headless = True
options.add_argument('--headless')

 

​- 위 두 가지 방식

+ 크롬드라이버를 자꾸 호출했으므로 프로세스 충돌 우려가 있어, 중간 중간 리눅스 서버에서 사용중인 프로세스를 확인해 정리해줬다.

 

5. 서버 재시작

- 정말 정말 최후의 수단으로 서버를 재시작했고, 크롬드라이버가 정상적으로 작동했다..

 

https://stackoverflow.com/questions/50642308/webdriverexception-unknown-error-devtoolsactiveport-file-doesnt-exist-while-t

 

WebDriverException: unknown error: DevToolsActivePort file doesn't exist while trying to initiate Chrome Browser

I am trying to launch chrome with an URL, the browser launches and it does nothing after that. I am seeing the below error after 1 minute: Unable to open browser with url: 'https://www.google.co...

stackoverflow.com