我正在测试一个ASP.NET Web窗体应用程序。对于IE浏览器,当我关闭浏览器时,弹出一个Confirm
框,我需要用Selenium Web Driver单击OK
按钮。在弹出的对话框如何点击确认框上的确定按钮?
的JavaScript是:
<script type="text/javascript">
//<![CDATA[
function onBeforeUnloadAction() {return 'Are you sure to leave ALNW? All unsaved data will be discarded.';}
window.onbeforeunload = function() {if ((window.event.clientX < 0) || (window.event.clientY < 0)) {return onBeforeUnloadAction();}}
//]]>
</script>
的代码来处理Confirm
框:
driver.Close();
var alert = driver.SwitchTo().Alert();
alert.Accept();
的问题是Confirm
盒子只是坐在那里,测试失败。我在做driver.Close()
得到以下异常:
Modal dialog present (UnexpectedAlertOpen)
编辑
我现在的解决方法是设置事件处理程序为null,承担OK被点击。
var js = driver as IJavaScriptExecutor;
js.ExecuteScript("window.onbeforeunload=null;");
driver.Close();
当我从Firefox关闭浏览器时,'Confirm'不会弹出。该Web应用程序供内部使用,因此所有用户都使用IE。 –
编辑答案,所以代码将在Firefox中工作。 –