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”标题的按钮。