Selenium chrome 실행시 "Chrome이 자동화된 테스트 소프트웨어에 의해 제어되고 있습니다." 자동화 메시지 제거
2024. 1. 26. 12:42ㆍIT관련
반응형
Selenium으로 chrome을 실행하면 "Chrome이 자동화된 테스트 소프트웨어에 의해 제어되고 있습니다." 라는 팝업이 뜨는데 사용자가 봤을때엔 바이러스나 해킹이라고 생각 할수도 있겠다 싶었다.
찾아보니 chrome이 봇탐지를 하면 나오는 메시지라고 하며 이 정보가 서버로 전달되면 서버에서는 매크로가 돌고 있다고 판단하여 차단을 할 수도 있다고 한다.
이전 포스트에 내용이 있기는 한데, chrome 자체 옵션중 remote-debugging-port를 이용하면 문제를 해결할 수 있다.
절차
- PC에 설치된 chrome 실행시 remote-debugging-port 옵션을 이용하여 포트 지정후 실행
- Webdriver에 (1)에 사용된 포트로 debuggingAddress를 지정하여 실행
- 이후 (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}')
반응형
'IT관련' 카테고리의 다른 글
Python 채팅 프로그램 (0) | 2024.02.01 |
---|---|
리모트 디버깅 포트 사용중인 크롬 브라우저 여부 확인 방법 (0) | 2024.01.31 |
Requests --> Selenium 세션 쿠키 유지 (0) | 2024.01.26 |
Selenium 프로필 적용 및 창 제어 (0) | 2024.01.24 |
셀레늄(Selenium)으로 웹제어 (0) | 2024.01.23 |