본문 바로가기
Python/Selenium

selenium WebDriverException: unknown error 오류 해결하기

by PySun 2025. 2. 21.
반응형

소개

Selenium을 사용하여 웹 자동화를 시도하는 도중에 'WebDriverException: unknown error'라는 에러 메시지에 직면할 수 있습니다. 이 오류는 여러 가지 이유로 발생할 수 있으며, 문제의 원인을 정확히 파악하기 어려운 경우가 많습니다. 이 블로그 글에서는 'unknown error' 오류의 원인과 그 해결 방법에 대해 설명하겠습니다.

에러 발생 예시 코드

먼저, 'WebDriverException: unknown error'가 발생할 가능성이 있는 간단한 예시 코드를 살펴보겠습니다.

from selenium import webdriver

# Chrome 드라이버 경로 설정
driver = webdriver.Chrome('path/to/chromedriver')

# 웹사이트 열기
driver.get('https://example.com')

# 페이지에서 어떤 다루기 힘든 요소 조작 시도
element = driver.find_element_by_id('nonexistent_id')
element.click()

에러 해결 방법

1. 드라이버와 브라우저 버전 확인

가장 흔한 원인 중 하나는 Chrome 드라이버와 실제 Chrome 브라우저의 버전 불일치입니다. 이를 해결하기 위해서는 두 버전이 일치하도록 업데이트하세요.

import os
import subprocess

# 현재 설치된 Chrome 버전 확인
chrome_version = subprocess.getoutput('google-chrome --version')
print("현재 Chrome 버전:", chrome_version)

# Chromedriver의 버전 확인 (경로 수정 필요)
os.system('path/to/chromedriver --version')

2. 잠시 대기 시간 추가

페이지가 완전히 로드되는지 확인하기 위해 WebDriverWait을 사용하여 대기 시간을 추가할 수 있습니다. 특히, 비동기적으로 콘텐츠를 로드하는 사이트의 경우 이 방법이 효과적입니다.

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 특정 요소가 나타날 때까지 대기
wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.ID, 'nonexistent_id')))
element.click()

3. 드라이버 옵션 변경

드라이버를 시작할 때 추가 옵션을 설정하여 오류를 해결하는 경우도 있습니다. 예를 들어 'headless' 모드로 드라이버를 실행해볼 수 있습니다.

from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument('--headless')  # 헤드리스 모드
driver = webdriver.Chrome('path/to/chromedriver', options=options)

driver.get('https://example.com')

마무리

이 블로그 글에서는 Selenium을 사용할 때 발생할 수 있는 'WebDriverException: unknown error'에 대한 여러 해결 방법을 소개했습니다. 브라우저와 드라이버의 버전 일치 여부, 로딩 대기 시간, 그리고 추가적인 드라이버 옵션들을 통해 이 오류를 극복할 수 있습니다. 항상 문서를 참고하며 오류를 해결해 나가는 것이 중요합니다. 웹 자동화의 길은 가끔 험난하지만, 그 속에서 발견하는 배움은 더욱 값질 것입니다!

반응형