본문 바로가기
Python/Selenium

Selenium Error executing JavaScript 오류 해결하기

by PySun 2025. 1. 10.
반응형

소개

Selenium을 사용하여 웹 자동화를 수행하는 중에는 종종 'Error executing JavaScript'라는 오류를 마주하는 경우가 있습니다. 이 오류는 주로 JavaScript 코드 실행 중에 예상치 못한 문제가 발생했을 때 나타납니다. 이번 포스팅에서는 이러한 오류가 발생하는 원인과 그 해결 방법에 대해 이야기하겠습니다.

에러 발생 예시 코드

우선, 'Error executing JavaScript' 오류가 발생할 수 있는 간단한 예시 코드를 살펴보겠습니다.

from selenium import webdriver

# 웹드라이버 초기화
driver = webdriver.Chrome()

# 웹 페이지 열기
driver.get("https://example.com")

# 잘못된 JavaScript 실행
result = driver.execute_script("return someUndefinedFunction();")
print(result)

에러 해결 방법

1. JavaScript 코드 확인하기

가장 먼저 확인해야 할 것은 실행하려는 JavaScript 코드입니다. 코드가 올바르게 작성되었는지, 정의되지 않은 변수를 참조하고 있지 않은지 검토하세요.

from selenium import webdriver

# 웹드라이버 초기화
driver = webdriver.Chrome()

# 웹 페이지 열기
driver.get("https://example.com")

# 정의된 함수 호출로 수정
result = driver.execute_script("return Math.max(1, 2, 3);")
print(result)

2. DOM 요소가 로드되는 시간 고려하기

JavaScript를 사용하여 페이지의 DOM 요소에 접근하려 할 때, 요소가 완전히 로드되지 않아 오류가 발생할 수 있습니다. 이 경우, 웹 요소가 로드될 때까지 대기하는 코드를 추가해보세요.

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

# 웹드라이버 초기화
driver = webdriver.Chrome()

# 웹 페이지 열기
driver.get("https://example.com")

# 특정 요소가 로드될 때까지 대기
element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.ID, "myElementId"))
)

# JavaScript 실행
result = driver.execute_script("return arguments[0].innerText;", element)
print(result)

마무리

이번 포스팅에서는 Selenium 사용 시 'Error executing JavaScript' 오류를 이해하고 이를 해결하기 위한 몇 가지 방법을 알아보았습니다. JavaScript 코드를 정확히 작성하고, DOM 요소가 완전히 로드된 후에 접근하도록 대기하는 점이 중요합니다. 이러한 습관은 웹 자동화의 신뢰성을 높이고 더 나은 사용자 경험을 제공하는 데 도움이 될 것입니다. 자동화 작업을 진행할 때는 항상 많은 인내심을 가지고 진행하길 바랍니다!

반응형