본문 바로가기
Python/Selenium

파이썬 Selenium JavascriptException 오류 해결하기

by PySun 2023. 9. 1.
반응형

JavascriptException은 JavaScript 실행 중에 문제가 발생했을 때 발생하는 예외입니다. 이 예외는 JavaScript 코드가 예상과 다른 결과를 반환하거나 오류가 발생한 경우에 발생할 수 있습니다. 예시 코드와 해결 방법에 대해 설명하겠습니다.

예시 코드:

아래 예시 코드에서는 JavascriptException이 발생할 수 있는 상황을 보여줍니다. JavaScript 코드 실행 중에 문제가 발생하는 시나리오를 시뮬레이션한 것입니다.

from selenium import webdriver
from selenium.common.exceptions import JavascriptException

try:
    driver = webdriver.Chrome('path/to/chromedriver')

    # JavascriptException이 발생할 수 있는 상황 시뮬레이션
    driver.get('https://www.example.com')
    driver.execute_script("invalidFunction();")

except JavascriptException as e:
    print("JavascriptException이 발생했습니다:", str(e))
finally:
    # 브라우저 종료
    driver.quit()

해결 방법:

JavascriptException이 발생한 경우 다음과 같은 방법으로 처리할 수 있습니다.

JavaScript 코드 수정:

JavaScript 코드에 오류가 있는 경우 해당 코드를 수정하여 정상적으로 실행되도록 합니다.

# JavaScript 코드 수정 예시
driver.execute_script("validFunction();")

예외 처리:

JavaScript 코드 실행 중에 예외가 발생할 수 있는 상황이라면 try-except 블록을 사용하여 예외를 처리합니다.

try:
    driver.execute_script("potentiallyInvalidFunction();")
except JavascriptException as e:
    print("JavascriptException이 발생했습니다:", str(e))

JavaScript 에러 로깅:

JavaScript 코드 실행 중에 발생하는 오류를 JavaScript 콘솔로 출력하도록 수정하고, Python 코드에서 콘솔 메시지를 읽어서 오류를 확인합니다.

# JavaScript 코드 수정 및 에러 로깅 예시
driver.execute_script("try { invalidFunction(); } catch (e) { console.error(e.message); }")

JavascriptException이 발생한 경우 JavaScript 코드를 검토하여 오류를 수정하거나 예외 처리를 추가합니다. 또한 JavaScript 에러 메시지를 콘솔에 출력하여 문제를 파악하고 수정할 수 있도록 합니다.

반응형