이 문제는 특수 테스트 하네스 (예: IDE) 또는 연속 빌드 시스템 (예: Jenkins)을 사용하여 ChromeDriver 또는 Chrome을 실행할 때 종종 발생합니다.
먼저 일반 사용자 명령 프롬프트에서 테스트에서 사용하는 것과 동일한 Chrome 바이너리를 실행해 봅니다 (chromedriver.log
파일에서 사용 중인 Chrome 바이너리 확인). 특수 명령줄 스위치나 인수를 Chrome에 전달하는 경우
이러한 스위치나 인수도 포함해야 합니다. Chrome이 제대로 시작되지 않으면
재설치를 통해 Chrome 설치 문제를 수정해야 합니다.
명령 프롬프트에서 Chrome을 실행할 수 있다고 가정한다면 다음 단계는 테스트 환경에서 테스트를 실행할 때 동일한 문제가 발생하는지 확인하는 것입니다. 일반 사용자의 명령 프롬프트에서 테스트 바이너리 또는 스크립트를 직접 실행하는 것이 좋습니다. 또한 WebDriver/ChromeDriver를 사용하지 않고 테스트에서 직접 Chrome을 실행할 수 있는지 확인해야 합니다. 예를 들어 자바에서는 ProcessBuilder API를 사용하여 Chrome 바이너리를 직접 시작할 수 있습니다. 테스트 환경에서도 테스트에 동일한 문제가 나타나는 경우 문제를 재현하는 방법에 대한 안내와 함께 새 문제를 제출하세요.
특수한 테스트 환경에서만 문제가 발생하는 경우 다음을 수행합니다.
Chrome의 대체 설치 프로그램 사용 이렇게 하면 모든 사용자에게 Chrome이 설치됩니다. Selenium을 백그라운드 서비스로 실행하는 경우 이렇게 하면 종종 문제가 해결됩니다.
시작할 때 Chrome이 다운되는 일반적인 원인은 Linux에서 루트 사용자(관리자)로 Chrome을 실행하는 경우입니다. WebDriver 세션을 만들 때 --no-sandbox
플래그를 전달하여 이 문제를 해결할 수 있지만 이러한 구성은 지원되지 않으며 사용하지 않는 것이 좋습니다. 일반 사용자로 Chrome을 대신 실행하도록 환경을 구성합니다.
위 방법으로도 문제가 해결되지 않으면 문제를 재현하는 방법과 함께 새로운 문제를 신고하세요. 특수하고 일반적이지 않은 테스트 환경에서만 문제가 발생하는 경우 ChromeDriver 개발자는 문제를 조사/해결하지 않을 수도 있습니다.