본문 바로가기
Python/Selenium

selenium.get_window_handles로 열린 모든 창 핸들 가져오기

by PySun 2025. 2. 19.
반응형

Selenium의 get_window_handles: 열린 모든 창 핸들 가져오기

웹 자동화의 혁신적인 도구인 Selenium은 테스트 자동화 및 웹 스크래핑을 위한 매우 유용한 라이브러리입니다. 이 포스팅에서 다룰 주제는 get_window_handles 메서드로, 여러 개의 창이나 탭이 열린 상태에서 이들의 핸들을 가져오는 방법에 대해 설명합니다. 이 기능은 멀티탭 작업 시 유용하게 사용될 수 있습니다.

get_window_handles 메서드 이해하기

get_window_handles 메서드는 현재 열린 모든 브라우저 창/tab의 핸들을 반환하는 메서드입니다. 이 핸들을 사용하면 특정 창으로 제어를 전환하거나 작업을 수행할 수 있습니다. 여러 개의 웹 페이지를 간편하게 다룰 수 있는 강력한 기능입니다.

메서드 시그니처

driver.window_handles

반환 값:

  • 열려있는 각 창에 대한 유니크한 식별자인 리스트를 반환합니다.

사용 예제

기본 예제

다음은 get_window_handles 메서드를 사용하여 열린 모든 브라우저 창 핸들을 가져오는 간단한 예제입니다.

from selenium import webdriver
import time

# 웹 드라이버 실행
driver = webdriver.Chrome()

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

# 새로운 창 열기
driver.execute_script("window.open('https://www.google.com');")

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

print("Opened window handles:", handles)
# 출력:
# Opened window handles: ['CDwindow-...1', 'CDwindow-...2']

창 전환 예제

가져온 핸들을 사용하여 특정 창으로 제어를 전환하는 예제입니다.

from selenium import webdriver
import time

# 웹 드라이버 실행
driver = webdriver.Chrome()

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

# 새로운 창 열기
driver.execute_script("window.open('https://www.google.com');")

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

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

# 현재 URL 출력
print("Current URL is:", driver.current_url)
# 출력:
# Current URL is: https://www.google.com

결론

get_window_handles 메서드는 Selenium을 사용하여 멀티탭 환경에서 작업할 때 필수적인 도구입니다. 이를 통해 여러 창을 효율적으로 관리하고 제어할 수 있습니다. 복잡한 웹 페이지 간의 전환을 보다 쉽게 할 수 있으며, 자동화 테스트를 한층 더 완벽하게 만들어 줍니다.

  • get_window_handles를 활용하여 다양한 웹 페이지 작업의 효율성을 높여보세요!
  • 이제는 여러 탭을 열고 불편한 전환 없이 자동화 작업을 이어갈 수 있습니다!
반응형