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 실행 시간 제어하기!
- 지금 바로 이 작업으로 웹 자동화의 세계로 들어가 보세요!
반응형