본문 바로가기
Python/Selenium

selenium.switch_to_window로 창 전환하기

by PySun 2025. 3. 5.
반응형

Selenium's switch_to_window: 창 전환의 마법

웹 자동화의 세계에서, Selenium은 그야말로 강력한 도구입니다. 하지만 웹 페이지에서 여러 개의 창이나 탭을 다루는 것은 때때로 혼란스러울 수 있습니다. 그런 경우에 switch_to_window 메소드를 사용하면, 우리가 원하는 창으로 매끄럽게 전환할 수 있습니다. 자, 이제 세상의 모든 창을 탐험해 볼까요?

switch_to_window 메소드 소개

switch_to_window 메소드는 Selenium에서 특정 창으로 포커스를 변경하는 데 사용됩니다. 이 메소드를 사용하면, 테스트 중에 새로 열린 창이나 기존의 창으로 쉽게 전환할 수 있어 사용자 경험을 한층 끌어올릴 수 있습니다.

메소드 시그니처

driver.switch_to.window(window_name)

매개변수:

  • window_name: 전환하고자 하는 창의 이름 또는 핸들입니다.

반환 값:

  • 선택한 창으로 포커스가 변경됩니다.

사용 예제

기본 예제

아래의 예제는 Selenium의 switch_to_window 메소드를 사용하여 새 창으로 전환하는 과정을 보여줍니다.

from selenium import webdriver
import time

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

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

# 새 창 열기
driver.execute_script("window.open('https://example.org', '_blank');")
time.sleep(2)  # 페이지 로딩 대기

# 현재 열려 있는 모든 창의 핸들 가져오기
window_handles = driver.window_handles

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

# 현재 창의 제목 출력
print(driver.title)  # 출력: Example Domain

# 첫 번째 창으로 다시 전환
driver.switch_to.window(window_handles[0])
print(driver.title)  # 출력: Example Domain
driver.quit()

여러 창을 다루는 예제

여러 창이 있을 때, 각각의 창을 교차하면서 테스트를 진행하는 방법도 소개합니다.

from selenium import webdriver
import time

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

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

# 새 창 열기
driver.execute_script("window.open('https://www.wikipedia.org', '_blank');")
driver.execute_script("window.open('https://www.python.org', '_blank');")
time.sleep(2)  # 페이지 로딩 대기

# 현재 열려 있는 모든 창의 핸들 가져오기
window_handles = driver.window_handles

# 각 창의 제목 출력하기
for handle in window_handles:
    driver.switch_to.window(handle)
    print(driver.title)

driver.quit()

결론

Selenium의 switch_to_window 메소드는 복잡한 웹 자동화 작업을 수월하게 만들어주는 훌륭한 도구입니다. 여러 창 사이를 자유롭게 전환하면서 최적의 테스트 환경을 구축해 보세요. 각 창마다 벌어지는 이야기를 놓치지 마세요!

  • 지금 바로 switch_to_window 메소드를 활용하여 창 전환의 재미를 느껴보세요!
  • 다양한 웹 페이지를 탐험하며, 창 전환의 매력을 경험해 보세요!
반응형