2017-05-11 5 views
1

셀레늄을 사용하여 팝업 창에 나타납니다 창 핸들과 경고 메시지와 함께 고정 된 두 번째 창이 나타납니다.취급 경고 시나리오는 다음과 같다 webdriver

WebDriverWait(driver, 2).until(EC.alert_is_present(), 
             'Timed out waiting for PA creation ' + 
             'confirmation popup to appear.') 

내 질문이 경고를 잡을 것입니다 드라이버가 경고를 보여 새로운 윈도우로 전환해야합니까 :

나는 코드를 사용?을 현재 창 핸들러와 상관없이 driver.switch_to.alert을 사용하여 경고를 포착 할 수 있습니다.

테스트 페이지

은 여기에 있습니다 : http://alertonpopwindow.bitballoon.com/

덕분에, MHD.

+0

당신은 돈을 내가 여러 창을 열 경우 어떤 기능이 – Andersson

+0

를 호출 한'경고()'에서 창으로 전환하고 내가해야 시도 할 수 있습니다 어떤 사람이 경계를 알았습니까? – MhdFadhil

답변

0

당신이 alert()라고하는 창을 모르는 경우

from selenium.common.exceptions import NoAlertPresentException 

for window in driver.window_handles: 
    driver.switch_to.window(window) 
    try: 
     driver.switch_to.alert.accept() 
     break 
    except NoAlertPresentException: 
     pass 
+1

코드는 driver.switch_to.alert에서 함수 대괄호를 제거한 후에 작동합니다. 하지만 여전히 경고를 수락하거나 거부 할 수는 없습니다. 고마워요. – MhdFadhil

+0

아 ... 예, 호출 할 수 없습니다. 문제를 해결하는 데 도움이된다면이 대답을 '수락 됨'으로 표시하십시오. – Andersson

+0

알림을 닫거나 수락 하시겠습니까? driver.accept()? – MhdFadhil