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