0

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

除了试图避免警报导致测试失败之外,是否有防止这种情况发生的好方法?对此进行测试很好,所以我不想简单地回避这个问题。测试失败后,我尝试切换到 DefaultContent,这就是抛出“UnhandledAlertException 未处理”的具体位置:

Driver.SwitchTo().DefaultContent();

它在一个 try-catch 块中,但由于某种奇怪的原因,这个异常没有被捕获。

4

1 回答 1

1

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

当页面包含 iFrame 时,选择页面上的第一个框架或主文档。

您可能想IAlert在 WebDriver.dll 中尝试。

例如

try {
   // doing your thing
} catch (UnhandledAlertException) {
    IAlert alert = driver.SwitchTo().Alert();
    Console.WriteLine(alert.Text);
    alert.Accept(); // or alert.Dismiss(); depends on your needs
}
于 2013-10-23T20:22:50.420 回答