Selenium:UnhandledAlertException未处理

时间:2013-10-23 19:17:54

标签: c# selenium unhandled-exception

我一直在使用selenium(C#)进行自动化测试已经有一段时间了,我最近使用Chrome Driver 2.4升级到版本2.37。在此升级之后,由于某种原因,每次打开的对话框导致测试失败时,异常都是未处理的,这会导致Visual Studio完全冻结,并且测试套件的其余部分不会被执行。

除了尝试避免警报导致测试失败之外,是否有一种防止这种情况发生的好方法?测试它是很好的,所以我不想简单地避开这个问题。在测试失败后,我尝试切换到DefaultContent,这特别是抛出“UnhandledAlertException未处理”的地方:

Driver.SwitchTo().DefaultContent();

它位于try-catch块中,但由于某些奇怪的原因,此异常不会被捕获。

1 个答案:

答案 0 :(得分:1)

Driver.SwitchTo().DefaultContent();用于切换帧。从API引用:

  

当a时,选择页面上的第一帧或主文档   页面包含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
}