본문 바로가기
Python/Selenium

selenium.switch_to.window로 창 전환하기

by PySun 2025. 2. 21.
반응형

Selenium switch_to.window: 웹 브라우저의 새 창 전환하기

웹 자동화를 위해 Selenium을 사용할 때, 여러 창이나 탭을 다루는 것은 필수적인 작업입니다. 여러 URL을 통해 정보에 접근하거나 파일을 다운로드할 때, 다른 창으로 전환하는 방법을 알아두어야 합니다. 오늘은 selenium.switch_to.window 메소드를 사용하여 창을 전환하는 방법에 대해 알아보겠습니다.

switch_to.window 메소드 소개

switch_to.window 메소드는 Selenium의 웹드라이버를 사용하여 특정 창으로 전환할 수 있도록 도와줍니다. 이 메소드를 통해 사용자는 현재 작업 중인 창을 쉽게 변경할 수 있으며, 각 창의 핸들을 활용하여 원하는 곳으로 원활하게 이동할 수 있습니다.

함수 시그니처

driver.switch_to.window(window_handle)

매개변수:

  • window_handle: 전환할 특정 창의 핸들입니다.

반환 값:

  • 지정한 창으로 성공적으로 전환됩니다. 이 메소드는 반환 값을 제공하지 않습니다.

사용 예제

기본 예제

아래는 selenium.switch_to.window 메소드를 사용하여 새 창으로 전환하는 기본 예제입니다.

from selenium import webdriver
import time

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

# 첫 번째 페이지 열기
driver.get("https://www.example.com")

# 새 창 열기
driver.execute_script("window.open('https://www.google.com');")
time.sleep(2)  # 창이 열리는 시간을 기다리기 위해 잠시 대기

# 모든 창 핸들 가져오기
window_handles = driver.window_handles

# 두 번째 창으로 전환
driver.switch_to.window(window_handles[1])

# 현재 페이지 확인
print(f"현재 URL: {driver.current_url}")
# 출력: 현재 URL: https://www.google.com

# 첫 번째 창으로 돌아가기
driver.switch_to.window(window_handles[0])
print(f"현재 URL: {driver.current_url}")
# 출력: 현재 URL: https://www.example.com

다양한 창 전환 예제

여러 창을 반복적으로 전환하는 것도 가능합니다.

# 추가 창 열기
driver.execute_script("window.open('https://www.wikipedia.org');")
time.sleep(2)

# 모든 창 핸들 가져오기 (3개의 창으로)
window_handles = driver.window_handles

# 각 창으로 전환 및 URL 출력
for i, handle in enumerate(window_handles):
    driver.switch_to.window(handle)
    print(f"창 {i + 1}의 URL: {driver.current_url}")
# 출력될 URL 목록: 
# 창 1의 URL: https://www.example.com
# 창 2의 URL: https://www.google.com
# 창 3의 URL: https://www.wikipedia.org

결론

selenium.switch_to.window 메소드는 여러 창이나 탭을 쉽게 관리할 수 있는 강력한 도구입니다. 이를 통해 웹 자동화를 효과적으로 수행하고 경로를 빠르게 전환할 수 있습니다. 다양한 웹 작업을 수행하는 데 매우 유용하니, 지금 바로 switch_to.window 메소드를 활용해보세요!

  • 웹 자동화를 통해 업무 효율성을 높이고 다양한 창을 자유롭게 다루어 보세요!
  • 지금 시도해 보세요! selenium.switch_to.window의 힘을 느껴보세요!
반응형