본문 바로가기
Python/Selenium

Selenium NoSuchSessionException 오류 해결하기

by PySun 2025. 2. 10.
반응형

소개

Selenium을 사용하다 보면 'NoSuchSessionException' 오류를 만나는 경우가 있습니다. 이는 흔히 세션이 더 이상 활성화되지 않거나 브라우저 인스턴스가 종료된 후에도 세션을 참조하려고 할 때 발생합니다. 이 글에서는 이 오류가 발생하는 이유와 함께 그 해결 방법을 살펴보겠습니다.

에러 발생 예시 코드

먼저, 'NoSuchSessionException'이 발생하는 간단한 예시 코드를 살펴보겠습니다.

from selenium import webdriver
from selenium.common.exceptions import NoSuchSessionException
import time

# Chrome 드라이버 생성
driver = webdriver.Chrome()

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

# 드라이버 종료
driver.quit()

# 종료된 드라이버에 접근
try:
    title = driver.title
    print(title)
except NoSuchSessionException as e:
    print("NoSuchSessionException 오류 발생:", e)

에러 해결 방법

1. 올바른 시점에 드라이버 종료

드라이버를 종료하기 전, 모든 작업이 완료되도록 코드를 작성해야 합니다. 드라이버 종료 후에 드라이버에 접근하지 않도록 주의하세요.

from selenium import webdriver

# Chrome 드라이버 생성
driver = webdriver.Chrome()

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

# 제목 가져오기
title = driver.title
print(title)

# 드라이버 종료
driver.quit()

2. 세션 관리

세션을 변수에 저장하지 않고 글로벌하게 관리하면 세션이 종료된 후에도 여전히 기존의 세션에 접근하려고 하는 위험이 있습니다. 각 스크립트 세션에서 드라이버를 제대로 관리하도록 하세요.

def main():
    driver = webdriver.Chrome()
    try:
        driver.get('https://www.example.com')
        title = driver.title
        print(title)
    finally:
        driver.quit()

if __name__ == "__main__":
    main()

마무리

이 글에서는 Selenium에서 발생하는 'NoSuchSessionException' 오류에 대한 이해와 문제 해결 방법에 대해 살펴보았습니다. 드라이버가 활성화된 상태에서만 접근할 수 있으므로, 항상 드라이버의 상태를 주의 깊게 관리하는 것이 중요합니다. 앞으로의 Selenium 작업에서 이 팁들이 도움이 되길 바랍니다! Happy coding!

반응형