🔍QA & TEST/💻Selenium with Python

Selenium을 사용하여 Chrome 브라우저를 제어 옵션

siwoobyeol 2024. 8. 31. 12:05

chatGPT에게 물어본 Chrome 브라우저 제어 옵션

1. detach

  • 설명: chrome_options.add_experimental_option("detach", True)
  • 목적: Selenium 스크립트 실행이 끝난 후에도 브라우저를 자동으로 닫지 않고 계속 열어둡니다.
  • 이유: 테스트 결과를 눈으로 확인하거나, 종료 후 브라우저의 상태를 유지할 때 사용합니다.

2. excludeSwitches

  • 설명: chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"])
  • 목적: 브라우저 실행 시 나타나는 특정 로그 메시지를 숨깁니다.
  • 이유: Chrome이 제어되는 동안 콘솔에 출력되는 불필요한 로그 메시지(예: enable-logging 관련)를 제거하여 콘솔 출력을 깔끔하게 유지합니다.

3. headless

  • 설명: chrome_options.add_argument("--headless")
  • 목적: 브라우저가 실제로 열리지 않도록 설정하고 백그라운드에서 실행합니다.
  • 이유: 화면에 브라우저를 표시하지 않고 백그라운드에서 테스트를 수행하여 리소스 사용을 줄이고, 테스트 환경에서 그래픽 환경이 필요 없는 경우에 사용합니다.

4. disable-gpu

  • 설명: chrome_options.add_argument("--disable-gpu")
  • 목적: GPU 하드웨어 가속을 비활성화합니다.
  • 이유: 일부 환경에서는 GPU 가속이 필요 없거나, 브라우저가 GPU 사용으로 인해 충돌하거나 불안정할 때 사용합니다. 특히 headless 모드에서 이 옵션을 자주 사용합니다.

5. start-maximized

  • 설명: chrome_options.add_argument("--start-maximized")
  • 목적: 브라우저가 최대화된 상태로 시작되도록 합니다.
  • 이유: 화면에 맞춘 테스트를 수행할 때, 모든 요소가 제대로 보이는지 확인하려는 경우에 사용합니다.

6. incognito

  • 설명: chrome_options.add_argument("--incognito")
  • 목적: 브라우저가 시크릿 모드(Incognito Mode)로 실행되도록 합니다.
  • 이유: 쿠키, 캐시, 세션 정보 등이 저장되지 않은 상태로 테스트를 수행하고자 할 때 사용합니다.

7. disable-extensions

  • 설명: chrome_options.add_argument("--disable-extensions")
  • 목적: Chrome 확장 프로그램을 비활성화합니다.
  • 이유: 테스트 실행 시 불필요한 확장 프로그램이 브라우저 동작에 영향을 미치지 않도록 하기 위해 사용합니다.

8. user-agent

  • 설명: chrome_options.add_argument("user-agent=your-custom-user-agent")
  • 목적: 브라우저의 사용자 에이전트(User-Agent)를 커스텀하게 설정합니다.
  • 이유: 특정 환경을 모방하여 테스트하거나, 서버 측에서 사용자 에이전트를 기반으로 다른 응답을 제공할 때 그 응답을 테스트하기 위해 사용합니다.

9. window-size

  • 설명: chrome_options.add_argument("window-size=1200x600")
  • 목적: 브라우저의 창 크기를 지정합니다.
  • 이유: 특정 해상도에서의 동작을 테스트하거나, 브라우저 크기를 조정하여 레이아웃 테스트를 수행할 때 사용합니다.

10. remote-debugging-port

  • 설명: chrome_options.add_argument("--remote-debugging-port=9222")
  • 목적: 원격 디버깅 포트를 설정합니다.
  • 이유: 디버깅을 위해 브라우저를 원격으로 제어할 필요가 있을 때 사용합니다.

11. disable-popup-blocking

  • 설명: chrome_options.add_argument("--disable-popup-blocking")
  • 목적: 팝업 차단 기능을 비활성화합니다.
  • 이유: 테스트 도중 팝업 창이 열려야 하는 경우 팝업 차단 기능이 이를 방해하지 않도록 합니다.

12. lang

  • 설명: chrome_options.add_argument("--lang=en")
  • 목적: 브라우저 언어를 설정합니다.
  • 이유: 특정 언어 환경에서 웹 페이지가 올바르게 렌더링되는지 테스트할 때 사용합니다.

13. disable-dev-shm-usage

  • 설명: chrome_options.add_argument("--disable-dev-shm-usage")
  • 목적: /dev/shm(공유 메모리) 파티션을 사용하지 않도록 설정합니다.
  • 이유: Docker 컨테이너나 리소스가 제한된 환경에서 사용합니다. 공유 메모리가 제한된 환경에서 이 옵션을 사용하면 성능이 향상될 수 있습니다.

14. no-sandbox

  • 설명: chrome_options.add_argument("--no-sandbox")
  • 목적: Chrome의 샌드박스 기능을 비활성화합니다.
  • 이유: 컨테이너 환경(예: CI/CD 파이프라인)에서 테스트를 실행할 때 사용합니다. 일부 환경에서는 샌드박스 모드가 Chrome 실행을 방해할 수 있습니다.