我正在测试一个 ASP.NET Web 表单应用程序。对于 IE,当我关闭浏览器时,会Confirm
弹出一个框,我需要单击OK
带有 Selenium Web Driver 的按钮。
弹出框的 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();