0

我正在使用 Java selenium 来控制浏览器(打开网页、删除 cookie 等)。每当我收到警报时,我都会按如下方式将其关闭:

try

{

    webDriver.someFunc();

}

catch (UnhandledAlertException error)

{

    webDriver.switchTo().alert().dismiss();

}

然后,在某些情况下,我NoAlertPresentException在尝试解除警报时会被抛出。

我不明白,我怎么可能NoAlertPresentException从处理程序内部被抛出UnhandledAlertException??????

谢谢

4

2 回答 2

0

我也遇到同样的错误,但不知道为什么?

我试过这个:

尝试

{

webDriver.someFunc();
webDriver.switchTo().alert().dismiss();

}

捕获(UnhandledAlertException 错误)

{

//忽视

}

这应该有效。您的代码的问题可能是:假设您单击某个打开警报的按钮并将其放入 try 块中。一旦触发 unhandledalertexception(打开警报时),它就会自动关闭您的警报,以便下一条语句变为无效因此您在 catch 块中定义的语句变得无效,并且它显示 No alert found 异常,因为警报已被解除。但是我仍然试图弄清楚为什么首先触发 unhandledalert 异常。对于某些警报,它会突然触发,并且不会显示所有警报。

我希望这可以澄清。

于 2013-10-30T05:38:13.923 回答
-1

首先,我必须说,未处理警报的概念对我来说毫无意义,因为警报是由操作触发的。如果您不了解警报是如何触发的,您应该与您的开发人员讨论并以正确的方式处理它。话虽如此,请查看 DesiredCapabilities -> CapapilityType -> UNEXPECTED_ALERT_BEHAVIOUR

于 2013-10-29T20:21:22.977 回答