点击捕获弹出窗口,然后单击“是”

时间:2011-10-23 20:55:26

标签: .net popup watin

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

我不知道弹出窗口的类型是什么,我尝试过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();
        }

    }

2 个答案:

答案 0 :(得分:4)

这应该有效:

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; }");

答案 1 :(得分:0)

我见过的例子看起来更像是这样: -

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