본문 바로가기
컴퓨터상식

크롬 다운그레이드 및 크롬(Chrome) 자동 업데이트 막는 방법

by 하이어시스템 2023. 8. 21.
반응형

하이어시스템 소개

 

하이어시스템 소개 feat.김프로

소개 안녕하세요, 저는 하이어시스템의 김프로입니다. 여러분들이 어려움을 겪고 계신 일상 업무를 저의 안정적이고 빠른 소프트웨어로 자동화하는 것, 그것이 저의 목표입니다. '하이어시스템

wise-office-worker.tistory.com

셀레니움(selenium)은 크롬 드라이버(chromedriver) 기반으로 실행되며 크롬 드라이버는 OS에 설치된 크롬의 버전과 일치해야 합니다. 그런데 크롬 브라우저는 기본적으로 자동으로 업데이트 되나 이에 대응되는 크롬 드라이버 배포가 늦어지거나 배포파일을 찾을 수 없는 경우에는 다음과 같은 NoSuchDriverException 오류를 만날 수 있습니다.

 

selenium.common.exceptions.NoSuchDriverException: 
Message: Unable to locate or obtain driver for chrome; 
For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location

 

하이어시스템에서 개발하여 배포한 프로그램은 기본적으로 OS에 설치된 크롬버전에 맞는 크롬드라이버를 자동으로 찾아 설치하는 로직이 포함되어 있으나 위와 같은 이유로 오류가 발생할 수 있습니다.

 

만약 이런 상황이라면,

OS에 설치된 크롬을 이전 버전으로 다운그레이드 하고 크롬 자동 업데이트를 막는 방법을 고려해야 합니다.


1. 크롬(Chrome) 다운그레이드

'프로그램 추가/제거' 로 검색되는 앱 실행

 

앱 및 기능 목록에서 기존에 설치된 Chrome 을 찾아서 '제거' 를 클릭하여 크롬을 제거 합니다.

Chrome 제거하기

 

우리가 설치하고자 하는 크롬(chrome) 버전은 크롬드라이버(chromedriver)와 호환이 되어야 하므로 다음의 링크에 접속하여 크롬 드라이버중 가장 최신버전을 찾습니다.

 

https://chromedriver.chromium.org/downloads

 

ChromeDriver - WebDriver for Chrome - Downloads

Current Releases If you are using Chrome version 115 or newer, please consult the Chrome for Testing availability dashboard. This page provides convenient JSON endpoints for specific ChromeDriver version downloading. For older versions of Chrome, please se

chromedriver.chromium.org

 

크롬드라이버 최신 릴리즈 현황을 보면 크롬 114까지는 게시판에 업로드 되어 있으나, 크롬 115부터는 the Chrome for Testing availability dashboard 라는 형태로 크롬드라이버를 제공 방식이 변경되었습니다.

 

해당 대시보드를 클릭하면 다음과 같은 현황을 확인할 수 있습니다.

대시보드 상 문제가 없는 경우

위의 현황표를 보면 크롬 Stable 버전은 115.0.5790.170 이며 이에 대응하는 크롬 드라이버는 URL로 다운받을 수 있음을 알 수 있습니다. 하이어시스템에서는 chromedriver_autoinstaller를 이용하여 크롬드라이버를 자동업데이트 하는데 내부적으로 위의 대시보드를 json형식으로 읽어 다운로드 받을 수 있는 드라이버를 확인하여 자동으로 내려 받습니다.

chromedriver_autoinstaller의 get_chromedriver_url()

 

만약 위와 같이 win64용 chromedriver의 HTTP status 가 200 으로 정상인 경우에는 문제가 없습니다. 하지만 만약 HTTP status가 404이면서 레코드가 붉은색으로 나타나는 경우 드라이버를 자동으로 찾을 수 없는 상태입니다. 또는 목록에서 동일한 버전의 크롬드라이버를 찾을 수 없는 경우도 있습니다. 이런 경우가 문제되는 상황이며 다음의 방법으로 우회처리를 해야 합니다.

대시보드에서 문제가 발견된 경우(예시)

1. 우선 크롬드라이버를 수동으로 배포하는 경우를 생각해 볼 수 있습니다.

 

# [참고] 크롬 115 버전 win64 다운로드

https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/115.0.5790.170/win64/chromedriver-win64.zip

 

하지만 위의 예시에서는 115에 해당하는 크롬드라이버는 다운받을 수 없는 상황입니다.

 

2. 다운그레이드를 통한 우회 방법만 가능한 상황입니다.

 

아래의 링크는 이전 버전의 크롬을 선택해서 설치할 수 있는 페이지 입니다. 크롬(Chrome) 114 버전 중 가장 마지막 릴리즈를 선택하여 설치합니다.

https://google-chrome.en.uptodown.com/windows/versions

 

Older versions of Google Chrome (Windows) | Uptodown

exe 115.0.5790.110 Jul 26, 2023 exe 115.0.5790.102 Jul 24, 2023 exe 115.0.5790.99 Jul 19, 2023 exe 114.0.5735.199 Jun 28, 2023 zip 114.0.5735.134 Jun 16, 2023 zip 114.0.5735.106 Jun 7, 2023 exe 113.0.5672.127 May 29, 2023 exe 113.0.5672.92 May 17, 2023 exe

google-chrome.en.uptodown.com

114 버전 중 가장 마지막 릴리즈로 다운그레이드


2. 크롬 자동업데이트 차단하기

크롬드라이버가 지원하는 크롬 버전으로 다운그레이드가 완료되었다면 이제 크롬이 자동으로 업데이트되지 않도록 막아야 합니다.

1)Google 업데이트 서비스 사용안함

실행창에서 '서비스' 를 입력하여 검색되는 앱을 실행합니다.

'서비스' 로 검색되는 앱 실행
Google 업데이트 서비스 2종

서비스를 실행하면 위와 같이 'Google 업데이트' 와 관련된 2종의 서비스를 찾을 수 있습니다. 더블클릭하여 속성창을 활성화 하신 후 모두 "사용안함" 으로 변경하세요.

'사용안함' 으로 설정

 

2)작업 스케줄러 Google Update Task 사용안함

실행창에서 '작업 스케줄러' 를 입력하여 검색되는 앱을 실행합니다.

'작업 스케줄러' 로 검색되는 앱 실행

작업 스케줄러를 실행하면 위와 같이 'GoogleUpdateTask' 와 관련된 2종의 스케줄을 찾을 수 있습니다. 오른쪽 마우스를 클릭하여 속성창을 활성화 하신 후 모두 "사용 안함" 으로 변경하세요.

GoogleUpdateTask 2종을 '사용 안함' 으로 설정

 

3)구글 업데이트 프로그램 숨김 처리

마지막으로 구글 업데이트 프로그램의 이름을 강제로 변경하여 작업 스케줄러가 찾지 못하도록 숨김으로써 업데이트를 완전히 차단합니다.

 

파일명에 '_OLD'를 붙임으로서 업데이트 프로그램을 찾을 수 없도록 숨김처리

 

3. 크롬 업데이트 차단여부 확인

크롬 브라우저를 실행하고 주소창에 chrome://settings/help 을 입력합니다. 그럼 아래와 같이 업데이트 필요 유무를 검사하는 로직이 실행됩니다. 하지만 곧 다음과 같은 오류 메세지를 확인할 수 있습니다.

업데이트 필요 유무를 검사하지만 반응이 없음

 

업데이트를 확인하는 동안 오류 발생

 

여기까지 되셨다면 크롬 다운그레이드 및 자동 업데이트 차단까지 모두 완료되었습니다. 만약 나중에 새로운 크롬 브라우저를 수동으로 설치하게 되면 위에서 설정한 값들은 모두 초기화되므로 자동업데이트 차단을 다시 설정해야 합니다.

반응형