2017-05-11 79 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

如果我有多個窗口打開什麼,我不不知道哪一個叫alert? – 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

相關問題