우리는 웹사이트를 이용하다 보면 경고창 Alert
를 볼 수 있습니다. 만약 내가 원하는 자동화를 만들고 싶은데 이러한 경고창이 뜨게 되면 에러가 발생하면서 더 이상 진행이 불가능하게 됩니다. 파이썬 셀레니움을 이용하면 이 경고창 alert를 처리할 수 있습니다.
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
먼저 경고창처리를 위해서는 WebDriverWait
,와 expected_conditions
을 같이 사용해 주는 것이 좋습니다. 경고창이 발생했다는 건 이전에 액션이 발생했기 때문에 Alert이 나오게 된것입니다. 따라서 경고 창이 있는지를 체크 후 닫아 주는 형태가 되면 좋습니다.
try:
WebDriverWait(browser, 3).until(EC.alert_is_present())
alert = browser.switch_to.alert
# 취소하기(닫기)
alert.dismiss()
# 확인하기
alert.accept()
except:
print("no alert")
WebDriverWait
를 이용해서 경고 창이 발생했는지를 먼저 확인합니다. 여기에 조건은 EC.alert_is_present()
입니다. 만약 경고창이 있다면 switch_to.alert
를 이용하여 경고창을 가져올 수 있습니다. 이후 .dismiss()
, .accept()
를 통해서 경고창을 처리하면 됩니다.
[공부/Python] - Python Selenium 파이썬 셀레니움 새 시크릿창, 사생활 보호 창
[공부/Python] - 파이썬 셀레니움 Python selenium 팝업창 닫기
그리드형(광고전용)