반응형
<참조> 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()
반응형
'웹 크롤링, 스크래핑' 카테고리의 다른 글
파이썬, 셀레니움 스크린샷 (0) | 2022.07.16 |
---|---|
파이썬, 셀레니움 윈도우 이동, 크기 제어 (0) | 2022.07.16 |
파이썬, 셀레니움에서 버튼이나 엘리먼트 접근 못하는 경우, iframe (0) | 2022.07.16 |
파이썬, 셀레니움 쿠키 제어 예제 (0) | 2022.07.16 |
셀레니움, WebDriverWait 및 에러 처리, 드라이버 옵션 예제 (0) | 2022.07.16 |