프로젝트/블로그 자동화 프로그램

셀레니움 자동화 중 브라우저 멈춤 현상 원인과 해결 방법

print() 2025. 5. 19. 14:35
300x250

 

티스토리 자동화를 위해 셀레니움과 크롬 프로필을 연동해 자동 로그인 환경을 구축한 후, 많은 사용자들이 겪는 공통된 문제는 “브라우저가 멈추고 코드가 진행되지 않는다”는 현상이다. 이 글에서는 해당 현상이 발생하는 주요 원인과 실질적인 해결 방안을 공유하고자 한다.


1️⃣ 멈춤 현상의 주요 원인

  • 크롬 브라우저 버전과 크롬드라이버 버전 불일치
    • 크롬 업데이트 이후 구버전 드라이버 사용 시, 실행만 되고 동작이 멈추는 현상이 발생함
    • chrome://version으로 크롬 버전 확인 후, 공식 사이트에서 맞는 드라이버 다운로드 필요
  • user-data-dir 프로필 경로에 락(lock) 파일 존재
    • 셀레니움이 기존 프로필을 사용할 때, 크롬이 실행 중이거나 비정상 종료되면 .lock 파일이 남아 접근 불가 현상이 발생
    • 해결 방법: 크롬 종료 후 프로필 디렉토리의 SingletonLock, SingletonCookie, SingletonSocket 파일 삭제
  • 옵션 누락 또는 충돌
    • 셀레니움 실행 시 필수 옵션 누락 시, 브라우저 창만 열리고 진행되지 않음
options.addArguments("--remote-debugging-port=9222"); // 디버깅 활성화
options.addArguments("--disable-blink-features=AutomationControlled"); // 자동화 탐지 방지

 

2️⃣ 해결을 위한 점검 리스트

✅ ChromeOptions 설정 시 프로필 경로를 정확하게 지정했는가?
✅ 크롬 버전 = 크롬드라이버 버전 확인했는가?
✅ 크롬 프로세스가 백그라운드에서 실행 중이지 않은가?
✅ 옵션 설정에 누락된 필수 항목은 없는가?
✅ 셀레니움 실행 시 에러 로그나 경고 메시지는 없는가?


3️⃣ 추가적으로 확인할 사항

  • 로그 출력으로 디버깅 흐름 확인
System.out.println("브라우저 시작");
driver.get("https://tistory.com");
System.out.println("페이지 접속 완료");

 

→ 중간에 멈추는 지점을 확인해 문제 구간 파악 가능

 

  • 브라우저 자동 닫힘 방지 옵션
    • 일부 경우 driver.quit() 호출 전 브라우저가 자동 종료되며 멈춘 것처럼 보일 수 있음

4️⃣ 테스트 코드 예시

ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=C:/Users/사용자명/AppData/Local/Google/Chrome/User Data/Profile 1");
options.addArguments("--remote-debugging-port=9222");
options.addArguments("--disable-blink-features=AutomationControlled");

System.setProperty("webdriver.chrome.driver", "C:/드라이버경로/chromedriver.exe");
WebDriver driver = new ChromeDriver(options);

System.out.println("브라우저 실행 중...");
driver.get("https://www.tistory.com");
System.out.println("티스토리 접속 완료");

 

 

300x250