Python/Selenium

selenium NoSuchCookieException 오류 해결하기

PySun 2025. 2. 19. 09:16
반응형

소개

Selenium을 사용하여 웹 자동화를 수행하는 중에 'NoSuchCookieException' 오류를 만나는 경우가 종종 있습니다. 이 오류는 요청한 쿠키가 존재하지 않을 때 발생합니다. 따라서, 쿠키를 잘못된 시점에 접근하는 경우나, 예상한 쿠키가 설정되지 않았을 때 이 문제가 발생할 수 있습니다. 이번 포스트에서는 이 오류의 원인과 함께 해결 방법을 알아보겠습니다.

에러 발생 예시 코드

아래의 예시 코드는 'NoSuchCookieException' 오류를 일으킬 수 있습니다. 확인해보시죠!

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

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

# 특정 웹사이트로 이동
driver.get("http://example.com")

# 쿠키 접근 시도(아직 쿠키가 없을 때)
try:
    cookie_value = driver.get_cookie("my_cookie")  # 'my_cookie'라는 쿠키에 접근하려 함
    print(cookie_value)
except NoSuchCookieException as e:
    print("쿠키가 존재하지 않습니다:", e)

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

에러 해결 방법

1. 쿠키 생성 확인

시도하기 전에 먼저 웹사이트에서 해당 쿠키가 생성되었는지를 확인하십시오. 일부 웹사이트는 특정 동작을 수행해야 쿠키가 설정되므로, 액션을 취해야 할 수 있습니다. 예를 들어, 로그인 또는 특정 페이지 이동 후 쿠키를 접근할 수 있습니다.

from selenium import webdriver

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

# 특정 웹사이트로 이동
driver.get("http://example.com")

# 쿠키 설정 예제
driver.add_cookie({"name": "my_cookie", "value": "cookie_value"})  # 'my_cookie'라는 쿠키 생성

# 설정된 쿠키 접근
cookie_value = driver.get_cookie("my_cookie")
print(cookie_value)

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

2. 쿠키 접근 전 대기

웹 페이지가 완전히 로드되기 전에 쿠키에 접근할 경우에도 오류가 발생할 수 있습니다. 웹 페이지의 로드가 완료된 후 쿠키를 접근하도록 `time.sleep` 또는 웹드라이버의 특정 대기 메서드를 사용하는 것이 좋습니다.

from selenium import webdriver
import time

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

# 특정 웹사이트로 이동
driver.get("http://example.com")

# 페이지 로드가 완료될때까지 대기
time.sleep(5)  # 5초 대기 후 쿠키 확인

try:
    cookie_value = driver.get_cookie("my_cookie")
    print(cookie_value)
except NoSuchCookieException:
    print("쿠키가 존재하지 않습니다.")

driver.quit()

마무리

이 블로그 글에서는 Selenium에서 발생하는 'NoSuchCookieException' 오류를 해결하기 위한 방법을 알아보았습니다. 쿠키가 생성된 후 접근하거나, 웹 페이지가 완전히 로드된 후에 쿠키에 접근하도록 하는 것이 필요합니다. Selenium을 사용할 때는 항상 페이지의 로드 상태와 쿠키가 설정되는 과정을 체크하여 원활한 자동화 작업을 수행할 수 있도록 하세요!

반응형