본문 바로가기
Python/Selenium

Selenium ScreenshotException 오류 해결하기

by PySun 2025. 1. 12.
반응형

소개

웹 자동화의 세계에 들어서면, Selenium과 함께하는 짜릿한 순간들이 많아집니다. 하지만 때때로 'ScreenshotException' 같은 장애물이 나타날 수 있습니다. 이 에러는 주로 스크린샷을 캡처할 수 없을 때 발생하며, 여러 이유로 인해 발생할 수 있습니다. 오늘은 이 오류의 원인과 해결 방법에 대해 자세히 알아보겠습니다.

에러 발생 예시 코드

아래는 'ScreenshotException' 에러가 발생할 수 있는 간단한 코드 예시입니다.

from selenium import webdriver
from selenium.common.exceptions import ScreenshotException

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

# 특정 웹페이지 열기
driver.get('https://www.example.com')

# 스크린샷 전달 시도
try:
    driver.save_screenshot('screenshot.png')
except ScreenshotException as e:
    print("스크린샷을 캡처하는 도중 문제가 발생했습니다:", e)

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

에러 해결 방법

1. 드라이버와 페이지가 활성 상태인지 확인하기

스크린샷을 찍기 전에, 드라이버가 페이지를 제대로 로드했는지 확인하세요. 만약 엘리먼트 또는 페이지가 로드되지 않았다면, 스크린샷이 실패할 수 있습니다.

from selenium import webdriver
import time

driver = webdriver.Chrome()

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

# 페이지가 로드될 때까지 잠시 대기
time.sleep(3)  # 대기 시간 조정 가능

# 스크린샷 성공적으로 캡처
driver.save_screenshot('screenshot.png')
driver.quit()

2. 스크린샷 저장 경로 확인하기

대부분의 경우, 파일 저장 경로가 올바르지 않거나 쓰기 권한이 없어서 오류가 발생할 수 있습니다. 경로를 확인하고, 권한 문제를 해결하세요.

import os

# 스크린샷 저장 경로 생성
screenshot_path = os.path.join(os.getcwd(), 'screenshots')  # 현재 작업 디렉토리에 'screenshots' 폴더 생성

if not os.path.exists(screenshot_path):
    os.makedirs(screenshot_path)  # 폴더가 없으면 생성

# 스크린샷 저장
driver.save_screenshot(os.path.join(screenshot_path, 'screenshot.png'))

마무리

Selenium에서 'ScreenshotException' 오류와 그 해결 방법에 대해 알아보았습니다. 드라이버 상태와 페이지 로딩, 올바른 저장 경로 거래확인을 통해 스크린샷 문제를 해결할 수 있습니다. 이렇게 오류를 극복하면서 웹 자동화의 아름다움을 더욱 깊이 있게 경험할 수 있습니다. 항상 코드를 작성할 때는 신중하게 접근하고, 각 단계에서 발생할 수 있는 가능성을 고려하세요. 무사히 스크린샷을 찍길 바랍니다!

반응형