C#WatiN – 添加AlertDialogHandler以在每个Alert对话框窗口中单击ok按钮

你好

那些使用WatiN的人也可能使用了DialogHandlers

那么有人可以教我如何分配一个DialogHandler来处理WatiN控件下特定IE实例的任何Alert Box window.alert()

DialogHandler只需单击OK按钮即可获得非常警告对话框,在这种情况下,我认为我们需要一个AlertDialogHandler ,基本上只需单击OK按钮即可。

 AlertDialogHandler.OKButton.Click() 

我在网上搜索并找到了一些例子..但是它们可以工作一小段时间或你指定的时间,我需要一个能永远工作的,直到我选择通过点击按钮来停止它。

这一直困扰我几个小时,任何帮助表示赞赏。 谢谢。

注意:有时警报对话框窗口有两个按钮。 这就是为什么我真的需要单击确定按钮,而不仅仅是关闭对话框窗口。

创建类:

 public class OKDialogHandler : BaseDialogHandler { public override bool HandleDialog(Window window) { var button = GetOKButton(window); if (button != null) { button.Click(); return true; } else { return false; } } public override bool CanHandleDialog(Window window) { return GetOKButton(window) != null; } private WinButton GetOKButton(Window window) { var windowButton = new WindowsEnumerator().GetChildWindows(window.Hwnd, w => w.ClassName == "Button" && new WinButton(w.Hwnd).Title == "OK").FirstOrDefault(); if (windowButton == null) return null; else return new WinButton(windowButton.Hwnd); } } 

创建IE实例后,将对话框处理程序附加到它:

 ie.AddDialogHandler(new OKDialogHandler()); 

此对话框处理程序将通过单击该按钮来处理所有窗口,其中包含带有“OK”标题的按钮。