簡體   English   中英

C#WatiN - 添加AlertDialogHandler以在每個Alert對話框窗口中單擊ok按鈕

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM