Используя Watin, я пытаюсь обработать диалоговое окно подтверждения и сказать Watin нажать «ОК». Это действительно хорошо задокументировано в Интернете - вы используете метод ConfirmDialogHandler
и UseDialogOnce
.. За исключением того, что он не работает для меня. Я получаю следующую ошибку:
WatiN.Core.Exceptions.WatiNException: Dialog not available within 5 seconds
Я использую бета-банкомат watin 2.0, но ранее я использовал более раннюю версию 1.X, в которой была такая же проблема. Проверено на машине коллег под управлением 64-битной Vista, я использую 64-битную Windows 7.
Код выглядит так:
using (IE ie = new IE("http://localhost/TestApp/TestConfirmPage.asp"))
{
var approveConfirmDialog = new ConfirmDialogHandler();
using (new UseDialogOnce(ie.DialogWatcher, approveConfirmDialog))
{
ie.Button(Find.ByName("btn")).ClickNoWait();
approveConfirmDialog.WaitUntilExists(5);
approveConfirmDialog.OKButton.Click();
}
ie.WaitForComplete();
}
Страница ASP очень проста, она состоит из кнопки, которая вызывает подтверждение, например:
<input type="button" name="btn" id="btn" value="Click me" onclick="ConfirmApp()" />
И ConfirmApp
был урезан для тестирования, так что теперь все, что он содержит, это:
bOK = confirm("You clicked a popup. Did you mean to?");
return bOK;