Watin 捕获弹出窗口,然后单击"Yes"



我使用watin登录网站并检索信息。如果有另一个登录已经存在相同的帐户在其他地方,网站弹出一个窗口,说"关闭其他会话?",有两个按钮"是"one_answers"否"。我需要捕获这个并单击"Yes"。

我不知道什么类型的弹出是,我尝试了AlertDialogHandler和ConfirmDialogHandler,但似乎不工作,有人可以帮助吗?下面是代码片段。谢谢!

   BrowserIe.Ie.Image(Find.ByName("login")).ClickNoWait();
    AlertDialogHandler d= new AlertDialogHandler();
    if(d.Exists())
    {
        log.Debug("got alert dialog when logging in...");
        d.OKButton.Click();
    }
    ConfirmDialogHandler confirm = new ConfirmDialogHandler();
    if(confirm.Exists())
    {
        {
            log.Debug("got confirm dialog when logging in...");
           confirm.OKButton.Click();
        }
    }

应该可以:

ConfirmDialogHandler confirm = new ConfirmDialogHandler();
using (new UseDialogOnce(BrowserIe.DialogWatcher, confirm))
{
    BrowserIe.Image(Find.ByName("login")).ClickNoWait();
    confirm.WaitUntilExists();
    confirm.OKButton.Click();
}

根据消息的速度,您甚至可能不需要Wait方法。

另一种方法是重写JavaScript的confirm函数,返回true:

BrowserIe.RunScript("function confirm(message) { return true; }");

我看过的例子都是这样的:-

ConfirmDialogHandler confirm = new ConfirmDialogHandler();
using (UseDialogOnce udo = new UseDialogOnce(BrowserIe.DialogWatcher, confirm))
{
    dlgHnd.WaitUntilExists();
    confirm.OKButton.Click();
}

相关内容

最新更新