제가 고객님의 요구에 프로그램을 제작하고 있었습니다. Selenium 을 활용한 특정 사이트 반복 작업이었습니다.
저는 프로그램이 잘 작동되는것을 확인하고 고객님께 전달 하였습니다.
그렇지만 고객님께서는 프로그램이 동작하지 않는다고 호소 하셨고 그 원인을 파악하던 중에 다음과 같은 에러가 발생하고 있음을 확인하였습니다. NoSuchDriverException 발생 “message”: “Driver unavailable: Driver path: ” 로그가 표시됩니다.
증상
너무나도 단순한 코드를 넣었음에도 예외 발생하고 있었습니다.
셀레늄 버전은 아래처럼이고
ChromeDriverService service = ChromeDriverService.CreateDefaultService();
ChromeOptions options = new ChromeOptions();
var driver = new ChromeDriver(service, options);
이렇게 간단한 코드인데
OpenQA.Selenium.NoSuchDriverException
HResult=0x80131500
메시지=Unable to obtain chrome using Selenium Manager; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location
소스=WebDriver
StackTrace:
at OpenQA.Selenium.DriverFinder.FullPath(DriverOptions options)
at OpenQA.Selenium.Chromium.ChromiumDriver.GenerateDriverServiceCommandExecutor(DriverService service, DriverOptions options, TimeSpan commandTimeout)
at OpenQA.Selenium.Chromium.ChromiumDriver..ctor(ChromiumDriverService service, ChromiumOptions options, TimeSpan commandTimeout)
at OpenQA.Selenium.Chrome.ChromeDriver..ctor(ChromeDriverService service, ChromeOptions options, TimeSpan commandTimeout)
at OpenQA.Selenium.Chrome.ChromeDriver..ctor(ChromeDriverService service, ChromeOptions options)
at Web사이트테스트.frmMain1.GoodChoice(ChromeDriverService service, ChromeOptions options) in D:\새폴더 (1)\Web사이트테스트\frmMain1.cs:line 285
이 예외는 원래
[외부 코드] 호출 스택에서 throw되었습니다.
내부 예외 1:
WebDriverException: Error starting process: D:\새폴더 (1)\Web사이트테스트\bin\Debug\selenium-manager/windows/selenium-manager.exe --browser "chrome" --output json
내부 예외 2:
WebDriverException: Selenium Manager process exited abnormally with 69 code: D:\새폴더 (1)\Web사이트테스트\bin\Debug\selenium-manager/windows/selenium-manager.exe --browser "chrome" --output json
Standard Output >>
{
"logs": [
{
"level": "ERROR",
"timestamp": 1696395467,
"message": "Driver unavailable: Driver path: "
}
],
"result": {
"code": 69,
"message": "Driver unavailable: Driver path: ",
"driver_path": "",
"browser_path": ""
}
}
이런 오류가 발생했습니다.
해결방법
처음엔 그저 ChromeDriver 가 없어서 인가 하고 강제로 복사도 해보고 이것 저것 해보았습니다.
그러던중 원인을 찾았고 그 원인을 공개합니다.
원인은 “한글 Path 가 포함” 되어 있었기 때문이었습니다.
위의 실행 폴더를 보면 D:\새폴더 입니다. “새폴더” 를 영문으로 바꾸니 그냥 실행 되더군요. Selenium 최신 버전은 수정이 되길 기대합니다.
한글 Path 를 없애니 잘 작동함을 알았고 고객님께 한글 Path 가 포함되지 않는 폴더에서 실행해야 한다고 전달하고 마무리
우와~~ 진짜 생각지도 못한 오류 였네요. ㅎㅎㅎ
덕분에 몇 시간 써치하고 드라이버 이것 저것 설치하고 있었는데.
덕 분에 잘 해결되었습니다.
대단히 감사합니다. ^^