[英]C# WatiN - Add an AlertDialogHandler to click ok button on every Alert dialog window
你好
那些使用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”標題的按鈕。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.