Во всплывающем окне захвата Ватин и нажмите «Да» - PullRequest
0 голосов
/ 24 октября 2011

Я использую 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 ]

4 голосов
/ 24 октября 2011

Это должно работать:

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

В зависимости от скорости сообщения вам может даже не понадобиться метод Wait.

Еще один способ избавиться от этой же кошки - переопределить функцию подтверждения JavaScript, возвращая true:

BrowserIe.RunScript("function confirm(message) { return true; }");
0 голосов
/ 24 октября 2011

Все примеры, которые я видел, выглядели так: -

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