Python/Selenium

selenium.set_script_timeout으로 스크립트 타임아웃 설정하기

PySun 2025. 2. 21. 08:03
반응형

Selenium의 set_script_timeout: 스크립트 타임아웃 설정하기

웹 자동화를 여전히 배우고 계시나요? 이 흥미로운 여정에서, Selenium은 웹 브라우저를 자동으로 제어할 수 있는 놀라운 도구입니다. 하지만, 가끔 스크립트 실행 시간이 너무 길어져버릴 때가 있습니다. 이러한 문제를 해결하기 위해 사용할 수 있는 기능이 바로 set_script_timeout입니다. 이 포스팅에서는 set_script_timeout을 사용하여 스크립트 타임아웃을 설정하는 방법을 소개할게요!

set_script_timeout 기능 소개

set_script_timeout은 Selenium이 웹 브라우저 내에서 JavaScript 스크립트를 실행할 때, 특정 시간 안에 실행이 완료되지 않으면 타임아웃을 발생시키도록 설정하는 기능입니다. 이 기능은 지속적인 대기 상태로 인해 자동화 작업이 중단되지 않도록 도와줍니다. 그렇다면, 이 기능을 어떻게 활용할 수 있을까요?

함수 시그니처

driver.set_script_timeout(time)

매개변수:

  • time: JavaScript 스크립트 실행을 대기할 시간(초)입니다.

반환 값:

  • 이 함수는 반환 값을 가지지 않으며, 주어진 시간 동안 JavaScript 스크립트가 실행될지 여부를 결정합니다.

사용 예제

기본 예제

여기서는 간단히 set_script_timeout을 사용하는 예제를 보여드리겠습니다. 아래 코드를 통해 스크립트 타임아웃을 설정할 수 있습니다.

from selenium import webdriver

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

# 스크립트 타임아웃 설정 (10초)
driver.set_script_timeout(10)

# URL 열기
driver.get('https://example.com')

# JavaScript 실행
result = driver.execute_script("return document.title;")

print(f"페이지 제목은: {result}")

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

실제 적용 예제

상황에 따라 스크립트가 시간이 걸릴 수 있습니다. 아래 예제는 네트워크 지연으로 인해 자주 발생하는 타임아웃 상황을 처리하는 방법을 보여줍니다.

from selenium import webdriver
from selenium.common.exceptions import TimeoutException

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

# 스크립트 타임아웃 설정 (5초)
driver.set_script_timeout(5)

try:
    # 응답이 느린 스크립트 실행
    driver.execute_script("setTimeout(function(){ return 'Completed!'; }, 6000);")
except TimeoutException:
    print("스크립트가 타임아웃되었습니다!")

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

결론

set_script_timeout을 활용하면 Selenium에서 JavaScript 스크립트의 실행 시간을 손쉽게 관리할 수 있습니다. 이를 통해 예기치 않은 지연으로부터 자유로워지고, 보다 안정적인 자동화 작업을 진행할 수 있습니다.

  • set_script_timeout으로 JavaScript 실행 시간 제어하기!
  • 지금 바로 이 작업으로 웹 자동화의 세계로 들어가 보세요!
반응형