Selenium WebDriver 환경 구성 중 발생하는 주요 오류 및 해결 방법

1. Firefox (GeckoDriver) 관련 이슈

Firefox 바이너리 경로 인식 실패

Firefox가 기본 경로가 아닌 다른 디렉토리에 설치된 경우 Cannot find firefox binary in PATH 오류가 발생할 수 있습니다. 시스템이 실행 파일을 찾을 수 있도록 수동으로 경로를 지정해야 합니다.

// Firefox 실행 파일의 절대 경로를 설정합니다.
System.setProperty("webdriver.firefox.bin", "C:\\Program Files\\Mozilla Firefox\\firefox.exe");

Selenium 3.x 이상에서의 GeckoDriver 필요성

Selenium 3.x 버전부터는 Firefox 제어를 위해 별도의 GeckoDriver가 필요합니다. webdriver.gecko.driver 속성이 설정되지 않으면 실행 시 에러가 발생합니다.

// GeckoDriver의 경로를 설정합니다.
System.setProperty("webdriver.gecko.driver", "drivers/geckodriver.exe");
WebDriver webDriver = new FirefoxDriver();

버전 호환성 가이드

Selenium과 Firefox 브라우저 간의 버전 불일치는 Unable to connect to host 127.0.0.1과 같은 통신 오류를 야기합니다. 주요 호환성 조합은 다음과 같습니다.

Selenium 버전 GeckoDriver 버전 Firefox 버전
3.3 0.15 v48 이상
3.5 0.19 v55
3.11 0.21 v57

2. Internet Explorer (IEDriver) 관련 이슈

보호 모드(Protected Mode) 설정 불일치

IE의 모든 보안 영역(인터넷, 로컬 인트라넷, 신뢰할 수 있는 사이트, 제한된 사이트)에 대한 '보호 모드 사용' 설정이 동일하지 않을 때 오류가 발생합니다. 코드에서 이를 무시하도록 설정할 수 있습니다.

InternetExplorerOptions ieOptions = new InternetExplorerOptions();
// 보안 영역 설정을 무시하도록 설정
ieOptions.introduceFlakinessByIgnoringSecurityDomains();

WebDriver ieDriver = new InternetExplorerDriver(ieOptions);

브라우저 확대/축소 레벨 문제

IE의 확대/축소 비율이 100%가 아닐 경우 WebDriver가 요소를 정확히 클릭하지 못할 수 있습니다. IGNORE_ZOOM_SETTING 옵션을 통해 이를 해결합니다.

InternetExplorerOptions zoomOptions = new InternetExplorerOptions();
// 확대/축소 레벨 체크 무시
zoomOptions.ignoreZoomSettings();
WebDriver driver = new InternetExplorerDriver(zoomOptions);

초기 URL 설정 및 윈도우 유실 방지

특정 상황에서 IE 브라우저 창을 제어할 수 없는 현상이 발생하면, 드라이버 초기화 시점에 시작 URL을 명시적으로 선언하는 것이 도움이 됩니다.

InternetExplorerOptions urlOptions = new InternetExplorerOptions();
urlOptions.withInitialBrowserUrl("https://www.google.com");
WebDriver driver = new InternetExplorerDriver(urlOptions);

3. Chrome (ChromeDriver) 관련 이슈

ChromeDriver 경로 설정

Chrome 역시 실행 파일을 시스템 속성에 등록해야 정상 작동합니다.

// 크롬 드라이버 파일 경로 지정
System.setProperty("webdriver.chrome.driver", "C:\\WebDrivers\\chromedriver.exe");
WebDriver chromeDriver = new ChromeDriver();

브라우저 및 드라이버 버전 매칭

Chrome 브라우저가 자동 업데이트되면서 기존 ChromeDriver와 호환되지 않아 chromedriver.exe has stopped working 오류가 빈번하게 발생합니다. 브라우저 버전(예: v67)에 맞는 드라이버(예: v2.41)를 사용해야 하며, 가급적 자동 업데이트를 비활성화하거나 드라이버를 최신화해야 합니다.

4. Java 실행 환경(JDK) 관련 문제

Selenium 3.x 이상의 라이브러리를 사용할 때 java.lang.UnsupportedClassVersionError가 발생한다면, 현재 프로젝트의 JDK 버전이 낮기 때문일 가능성이 큽니다. Selenium 3.x부터는 최소 JDK 1.8 이상의 환경을 요구합니다. 환경 변수의 JAVA_HOME 설정을 확인하고 1.8 버전 이상으로 업그레이드해야 합니다.

태그: selenium webdriver GeckoDriver ChromeDriver IEDriver

7월 12일 00:45에 게시됨