Selenium chrome 실행시 "Chrome이 자동화된 테스트 소프트웨어에 의해 제어되고 있습니다." 자동화 메시지 제거

2024. 1. 26. 12:42IT관련

반응형

Chrome이 자동화된 테스트 소프트웨어에 의해 제어되고 있습니다.

Selenium으로 chrome을 실행하면 "Chrome이 자동화된 테스트 소프트웨어에 의해 제어되고 있습니다." 라는 팝업이 뜨는데 사용자가 봤을때엔 바이러스나 해킹이라고 생각 할수도 있겠다 싶었다.

찾아보니 chrome이 봇탐지를 하면 나오는 메시지라고 하며 이 정보가 서버로 전달되면 서버에서는 매크로가 돌고 있다고 판단하여 차단을 할 수도 있다고 한다.

이전 포스트에 내용이 있기는 한데, chrome 자체 옵션중 remote-debugging-port를 이용하면 문제를 해결할 수 있다. 

절차

  1. PC에 설치된 chrome 실행시 remote-debugging-port 옵션을 이용하여 포트 지정후 실행
  2. Webdriver에 (1)에 사용된 포트로 debuggingAddress를 지정하여 실행
  3. 이후 (1)에 실행된 chrome을 webdriver를 이용하여 원격으로 제어

샘플 코드

import subprocess
from selenium import webdriver

PROFILE = r'C:\remote-profile'  # Profile path
PORT = 9222 # Remote debugging port number

# Chrome이 설치되어 있는 path
cmd = r'C:\Program Files\Google\Chrome\Application\chrome.exe'
cmd += f' --user-data-dir="{PROFILE}"'	# user-data-dir 지정
cmd += f' --remote-debugging-port={PORT}'	# remote debugging port 지정
subprocess.Popen(cmd)	# chrome 실행

chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option('debuggerAddress', f'127.0.0.1:{PORT}')	# 디버깅 포트로 연결
driver = webdriver.Chrome(options=chrome_options)
driver.get('https://www.naver.com')

 

바로 아래 코드가 디버그 포트로 연결하는 코드이다. 9222번 포트를 디버그 모드로 실행하고 있는 크롬에 연결한다고 이해 하면 된다.

chrome_options.add_experimental_option('debuggerAddress', f'127.0.0.1:{PORT}')

 

 

 

반응형