2013-10-23 58 views
0

我已經在硒(C#)上進行了相當長時間的自動化測試,並且最近我使用Chrome驅動程序2.4升級到了版本2.37。升級之後,出於某種原因,每當打開的對話框導致測試失敗時,該異常都會被處理,導致Visual Studio完全凍結,並且測試套件的其餘部分無法執行。Selenium:UnhandledAlertException未處理

除了試圖避免導致測試失敗的警報之外,是否有避免發生這種情況的好方法?這是很好的測試,所以我不想簡單地閃避這個問題。一個失敗的測試後,我嘗試切換到DefaultContent,並且特別在「UnhandledAlertException了未處理」被拋出:

Driver.SwitchTo().DefaultContent(); 

它是在一個try-catch塊,但這種異常不會被逮住了一些奇怪的原因。

回答

1

Driver.SwitchTo().DefaultContent();用於切換幀。來自API的報價:

當 頁面包含iFrame時,選擇頁面上的第一幀或主文檔。

你可能想在WebDriver.dll中嘗試IAlert

例如

try { 
    // doing your thing 
} catch (UnhandledAlertException) { 
    IAlert alert = driver.SwitchTo().Alert(); 
    Console.WriteLine(alert.Text); 
    alert.Accept(); // or alert.Dismiss(); depends on your needs 
}