반응형

<참조> https://www.selenium.dev/documentation/webdriver/browser/windows/

 

파이썬, 셀레니움 브라우저 창과 탭 이동 제어

 

정리. 수알치 오상문

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
with webdriver.Firefox() as driver:
    driver.get("https://seleniumhq.github.io")
    wait = WebDriverWait(driver, 10)
    # 현재 창 ID 저장 
    original_window = driver.current_window_handle
    # 다른 창이 열려있는지 검사
    assert len(driver.window_handles) == 1
    # 다른 창('new window')으로 이동 
    driver.find_element(By.LINK_TEXT, "new window").click()
    wait.until(EC.number_of_windows_to_be(2))
    # 새로운 창이 있으면 돌아다니기
    for window_handle in driver.window_handles:
        if window_handle != original_window:
            driver.switch_to.window(window_handle)
            break
    wait.until(EC.title_is("SeleniumHQ Browser Automation"))

 

새로운 창이나 탭 이동 

# 다른 탭으로 이동
driver.switch_to.new_window('tab')
# 다른 창으로 이동
driver.switch_to.new_window('window')

닫고 이전 창이나 탭으로 돌아가기 

# 현재 탭이나 창 닫기
driver.close()
# 이전에 저장한 ID 창/탭으로 이동
driver.switch_to.window(original_window)

 

모든 창/탭을 닫고 브라우저 종료하기 (드라이버까지 종료)

driver.quit()

 

 

반응형

+ Recent posts