如何使用watin在警告对话框中单击确定按钮?

时间:2011-07-22 06:28:08

标签: c# watin

我正在尝试自动化一个网站,在点击“提交”按钮后,在我的项目中,将出现一个带有确定按钮的警报消息。我想点击那个ok按钮。

我分别尝试了这两个代码,但这些代码无效

                    AlertDialogHandler AlertDialog = new AlertDialogHandler();
                    ie.AddDialogHandler(AlertDialog);
                    ie.Button(Find.ByValue("Submit")).ClickNoWait();
                    AlertDialog.WaitUntilExists();
                    AlertDialog.OKButton.Click();
                    ie.WaitForComplete();
                    ie.RemoveDialogHandler(AlertDialog);


                    var AlertDialogHandler = new AlertDialogHandler();
                    using (new UseDialogOnce(ie.DialogWatcher, AlertDialogHandler))
                    {
                        ie.Button(Find.ByValue("Submit")).ClickNoWait();
                        AlertDialogHandler.WaitUntilExists(50);
                        var message = AlertDialogHandler.Message;
                        AlertDialogHandler.OKButton.Click();
                        ie.WaitForComplete();
                    }

使用这两个代码时,我得到了相同的异常'对话框,在30秒内无法使用'。

任何帮助都将深表感谢。谢谢:)

4 个答案:

答案 0 :(得分:1)


当我打开多个浏览器窗口并且我正在试用它时,这种情况发生在我身上几次。
当时的解决方案是关闭IE的所有实例,关闭NUnit / VS并重新开始,它就像一个魅力。但是,我使用的是ConfirmDialogHandler而不是AlertDialog Handler。

如果这没有帮助,您可能需要在启动浏览器实例之前尝试添加以下内容。

Settings.AutoStartDialogWatcher = true;
Settings.AutoCloseDialogs = true;

答案 1 :(得分:0)

我对WatiN并不熟悉,但这是另一个可能有用的SO帖子:

WatiN seems to not find JavaScript alert

答案 2 :(得分:0)

有一种方法可以在没有注意的情况下执行此操作:

请参阅我的帖子:

Need a way to perform auto confirm for firefox or any other browser popup's

答案 3 :(得分:0)

这有点不相关,但是AlertDialogHandler不能用于Firefox,但有一个解决方法......

http://pastebin.com/ZapXr9Yf