메뉴 닫기

파이썬 Selenium으로 Chrome 권한 팝업 사전 허용하기 default_content_setting_values 설정법

파이썬 Selenium으로 Chrome 권한 팝업 사전 허용하기 default_content_setting_values 설정법

🚀 알림과 위치 권한을 자동으로 허용해 테스트 시간을 단축하는 실전 팁

웹 자동화 테스트를 하다 보면 예상치 못한 브라우저 권한 팝업 때문에 흐름이 끊기는 경험을 많이 하게 됩니다.
특히 알림(Notification) 허용 여부나 위치(Location) 접근 권한은 대부분의 사이트에서 빈번하게 등장하죠.
테스트 과정에서는 이런 팝업을 매번 수동으로 처리할 수 없기 때문에, 미리 권한을 자동 허용하도록 설정해 두면 훨씬 효율적인 작업이 가능합니다.
이 글에서는 파이썬 Selenium을 활용해 Chrome 브라우저의 권한 팝업을 사전에 제어하는 방법을 다루어 보겠습니다.

크롬은 기본적으로 profile.default_content_setting_values라는 옵션을 제공하여 알림, 지리 정보, 마이크, 카메라 등의 접근 권한을 개발자가 직접 정의할 수 있습니다.
이 기능을 잘 활용하면 자동화 테스트를 더욱 안정적이고 매끄럽게 진행할 수 있으며, 실제 현업에서도 필수적으로 쓰이는 중요한 설정입니다.
본문에서는 옵션 값의 의미, 실제 코드 적용 사례, 자주 발생하는 문제와 해결책까지 체계적으로 설명드릴 예정입니다.



🔗 Selenium 권한 팝업 자동화 개요

웹 자동화 테스트를 진행하다 보면 브라우저에서 예상치 못한 팝업이 발생해 흐름이 끊기는 경우가 많습니다.
대표적으로 알림(Notification) 권한과 위치(Location) 접근 권한은 여러 웹사이트에서 공통적으로 요청하는 기능입니다.
Selenium을 사용해 로그인, 버튼 클릭, 데이터 입력 같은 시나리오를 자동화할 때 이런 팝업이 등장하면 코드 실행이 멈추거나 오류가 발생할 수 있습니다.

이를 해결하기 위해 Selenium은 브라우저 설정을 직접 제어할 수 있는 다양한 옵션을 제공합니다.
특히 Chrome에서는 profile.default_content_setting_values 옵션을 활용해 권한 요청 팝업을 사전에 자동 처리할 수 있습니다.
이 기능을 활용하면 사용자가 직접 팝업을 클릭하지 않아도 브라우저가 자동으로 ‘허용’ 또는 ‘차단’을 적용하게 됩니다.
즉, 불필요한 대기 시간을 줄이고, 테스트의 안정성과 재현성을 높일 수 있는 것이죠.

⚡ 자동화 효율성이 높아지는 이유

테스트 자동화는 단순 반복 작업을 최소화하는 데 목적이 있습니다.
하지만 권한 팝업을 매번 수동으로 클릭해야 한다면 자동화의 의미가 크게 줄어듭니다.
따라서 초기 세팅에서 권한을 미리 제어하면 테스트 실행 시 팝업이 전혀 나타나지 않고, 스크립트가 끊김 없이 동작하게 됩니다.

  • 🛠️권한 팝업으로 인한 테스트 중단 방지
  • ⚙️알림 및 위치 권한을 사전 자동 처리
  • 🚀테스트 재현성 및 속도 향상

즉, Selenium 자동화의 중급 단계에서는 단순히 요소를 클릭하거나 입력하는 것을 넘어, 브라우저의 내부 설정까지 제어할 줄 알아야 더 안정적이고 효율적인 자동화 환경을 구축할 수 있습니다.

🛠️ Chrome profile.default_content_setting_values 이해하기

Selenium에서 Chrome을 제어할 때는 ChromeOptions 객체를 통해 세부적인 환경을 지정할 수 있습니다.
그중에서도 profile.default_content_setting_values는 웹사이트 권한 요청을 사전에 정의하는 핵심 옵션입니다.
이 설정을 통해 알림, 위치, 마이크, 카메라 등과 같은 접근 권한을 자동으로 허용하거나 차단할 수 있습니다.

🔑 주요 키와 값의 의미

설정 키 제어 대상 설정 값
notifications 알림 권한 0: 기본, 1: 허용, 2: 차단
geolocation 위치 권한 0: 기본, 1: 허용, 2: 차단
media_stream 마이크/카메라 0: 기본, 1: 허용, 2: 차단

이처럼 각 항목에 대해 허용 여부를 명확히 지정하면, 브라우저는 권한 팝업을 띄우지 않고 설정에 따라 자동으로 응답합니다.
따라서 테스트 환경이 더욱 안정적으로 유지되며, 사람의 개입 없이 자동화된 시나리오를 실행할 수 있습니다.

💬 예를 들어 notifications를 1로 설정하면, 테스트 중 발생하는 모든 알림 권한 팝업이 자동으로 허용됩니다.

다음 단계에서는 실제 파이썬 코드에서 이 옵션을 적용해 권한을 제어하는 방법을 구체적으로 살펴보겠습니다.



⚙️ 알림과 위치 권한 사전 허용 코드 적용

실제 코드에서 ChromeOptionsprefs를 사용하면 권한 팝업을 사전에 제어할 수 있습니다.
아래는 알림(Notification)과 위치(Location) 권한을 자동으로 허용하는 예제 코드입니다.

CODE BLOCK
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

# Chrome 옵션 설정
options = webdriver.ChromeOptions()
prefs = {
    "profile.default_content_setting_values.notifications": 1,  # 알림 허용
    "profile.default_content_setting_values.geolocation": 1     # 위치 허용
}
options.add_experimental_option("prefs", prefs)

# 드라이버 실행
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
driver.get("https://www.example.com")

위 예시에서 1은 ‘허용’을 의미합니다.
만약 팝업을 차단하고 싶다면 값을 2로 변경하면 됩니다.
이렇게 설정하면 크롬은 권한 요청이 들어올 때 팝업을 띄우지 않고 지정된 정책대로 자동 응답합니다.

📌 코드 적용 시 유의사항

⚠️ 주의: 일부 웹사이트는 권한 허용 여부를 자바스크립트 로직으로 재확인합니다.
이 경우 브라우저 설정만으로는 테스트가 정상 동작하지 않을 수 있으므로, 별도의 JavaScript 실행이나 추가 처리 로직이 필요할 수 있습니다.

또한 크롬 버전과 드라이버 버전에 따라 동작이 달라질 수 있으므로, 최신 버전을 유지하는 것이 좋습니다.
webdriver_manager 라이브러리를 활용하면 크롬 드라이버를 자동으로 설치하고 관리할 수 있어 훨씬 편리하게 유지할 수 있습니다.

🔌 테스트 시 자주 발생하는 문제와 해결책

Chrome 권한 설정을 적용했음에도 불구하고 권한 팝업이 여전히 나타나거나, 특정 사이트에서 정상적으로 작동하지 않는 경우가 있습니다.
이런 상황은 주로 브라우저 버전 불일치, 잘못된 옵션 키 사용, 또는 웹사이트 고유의 자바스크립트 권한 체크 로직 때문입니다.
아래에서는 테스트 환경에서 자주 발생하는 문제와 그에 대한 해결책을 정리했습니다.

🧩 흔히 겪는 문제 상황

  • ⚠️크롬 드라이버 버전과 브라우저 버전 불일치
  • ⚠️profile.default_content_setting_values 키 오타
  • ⚠️웹사이트 내부 자바스크립트에서 권한 상태를 재검증

🔧 해결 방법

💡 TIP: webdriver_manager를 사용하면 항상 최신 드라이버 버전을 자동으로 설치해 버전 충돌 문제를 방지할 수 있습니다.

또한 웹사이트에서 자바스크립트로 권한 상태를 강제로 확인하는 경우, Selenium의 execute_script()를 사용하여 권한 객체를 직접 조작해야 하는 경우도 있습니다.

CODE BLOCK
# 권한 상태를 수동으로 설정하는 예시 (테스트 환경 전용)
driver.execute_script(
    "navigator.permissions.query = (p) => Promise.resolve({state: 'granted'});"
)

이 방법은 실서비스 환경에서는 권장되지 않지만, 테스트 자동화 목적이라면 유용하게 활용할 수 있습니다.
즉, 기본 Chrome 옵션 설정과 추가적인 스크립트 조작을 병행하면 대부분의 권한 팝업 문제를 해결할 수 있습니다.



💡 효율적인 권한 제어 활용 사례

권한 제어는 단순히 팝업을 막는 용도에 그치지 않습니다.
실제 업무 환경에서는 다양한 테스트 시나리오에 따라 알림, 위치, 마이크, 카메라 권한을 다르게 설정해야 하는 경우가 많습니다.
이를 적절히 활용하면 테스트의 현실성을 높이고, 동시에 자동화 안정성을 강화할 수 있습니다.

🌍 위치 기반 서비스 테스트

지도 서비스나 배달 플랫폼은 사용자의 위치 정보를 기반으로 동작합니다.
이 경우 geolocation 권한을 자동 허용해 두면 테스트가 끊기지 않고 정상 진행됩니다.
또한 Selenium에서 위치 좌표를 직접 지정할 수도 있어, 다양한 지역 기반 테스트를 손쉽게 구현할 수 있습니다.

CODE BLOCK
# 위치 좌표 지정 예제
params = {
    "latitude": 37.5665,   # 서울 위도
    "longitude": 126.9780, # 서울 경도
    "accuracy": 100
}
driver.execute_cdp_cmd("Emulation.setGeolocationOverride", params)

🔔 알림 기능 테스트

웹 푸시 알림을 제공하는 서비스에서는 알림 권한이 필수입니다.
테스트 환경에서 권한 팝업이 차단되면 정상적인 기능 검증이 불가능해집니다.
따라서 notifications를 허용해 두면 알림 수신 및 처리 로직을 실제 환경처럼 테스트할 수 있습니다.

🎤 화상 회의 플랫폼

Zoom, Google Meet 같은 서비스에서는 마이크와 카메라 권한이 필수적입니다.
테스트 환경에서 팝업을 미리 허용해 두면, 회의 연결과 장치 접근 시나리오를 끊김 없이 진행할 수 있습니다.
이는 특히 자동 회의 연결 테스트나 대규모 QA 환경에서 큰 도움이 됩니다.

💎 핵심 포인트:
테스트 목적에 따라 권한을 허용하거나 차단하는 전략적 활용이 필요합니다. 무조건 허용보다는 실제 서비스 시나리오에 맞게 설정하는 것이 더 효과적입니다.

자주 묻는 질문 (FAQ)

Selenium에서 권한 팝업을 완전히 없앨 수 있나요?
Chrome 옵션을 통해 대부분의 권한 팝업은 사전에 제어할 수 있습니다. 하지만 일부 사이트는 자바스크립트로 권한 상태를 재검증하므로, 스크립트 조작을 추가해야 완전히 제거할 수 있습니다.
알림 권한을 자동으로 허용하지 않고 차단할 수도 있나요?
네, 가능합니다. profile.default_content_setting_values.notifications를 2로 설정하면 모든 알림 권한이 자동 차단됩니다.
위치 정보 테스트 시 특정 좌표를 지정할 수 있나요?
네, 가능합니다. Selenium의 execute_cdp_cmd를 사용하면 위도와 경도를 지정해 원하는 지역을 테스트할 수 있습니다.
브라우저 버전이 다르면 권한 설정이 안 먹히나요?
맞습니다. 크롬과 드라이버 버전이 맞지 않으면 옵션이 무시되거나 예상과 다르게 동작할 수 있습니다. webdriver_manager를 사용하면 최신 버전을 자동 유지할 수 있습니다.
권한 제어를 적용해도 팝업이 계속 뜨는 이유는 무엇인가요?
대부분 오타나 잘못된 옵션 키가 원인입니다. 또, 일부 웹사이트는 자체 자바스크립트 로직으로 권한을 재확인하기 때문에, 브라우저 설정만으로는 부족할 수 있습니다.
Selenium 이외의 브라우저 자동화 도구에서도 같은 방식이 통하나요?
Puppeteer, Playwright 같은 도구도 비슷한 권한 제어 옵션을 제공합니다. 다만 옵션 이름과 설정 방식은 도구마다 다릅니다.
테스트 환경과 실제 사용자 환경 모두 같은 설정을 써도 되나요?
권장하지 않습니다. 테스트 환경에서는 편의상 권한을 강제로 허용할 수 있지만, 실제 서비스 환경에서는 보안 문제를 초래할 수 있으므로 사용자 동의를 거쳐야 합니다.
권한 제어를 설정하면 성능에도 영향이 있나요?
성능에 직접적인 영향은 거의 없습니다. 다만 권한 팝업을 제거함으로써 테스트 실행 속도는 오히려 향상되는 효과가 있습니다.

📝 파이썬 Selenium 권한 제어 설정으로 자동화 완성도 높이기

파이썬 Selenium으로 브라우저 자동화를 진행할 때 가장 많이 발생하는 불편 요소 중 하나가 바로 알림, 위치, 마이크 같은 권한 팝업입니다.
이 문제를 해결하기 위해 profile.default_content_setting_values 옵션을 적용하면 테스트 환경을 보다 안정적으로 유지할 수 있습니다.
알림과 위치 권한을 사전에 허용하거나 차단해 팝업을 제거하면, 테스트 속도는 빨라지고 시나리오의 재현성도 강화됩니다.

특히 기업용 테스트 환경이나 반복 실행이 많은 QA 자동화에서는 이러한 세부 설정이 필수적입니다.
웹사이트 성격에 따라 권한을 전략적으로 설정하면 실제 사용자 환경과 유사한 시뮬레이션이 가능해집니다.
단순 자동화를 넘어, 효율적인 품질 관리테스트 생산성 향상에 기여할 수 있는 중요한 포인트라 할 수 있습니다.


🏷️ 관련 태그 : Selenium, 파이썬자동화, 크롬옵션, 웹테스트자동화, 브라우저권한, QA테스트, 웹개발팁, 위치기반서비스, 알림자동허용, 크롬드라이버