Я использую последнюю сборку WatiN от 12.04.2011 (2.1.0.1196).
У меня есть страница aspx, загруженная в IFrame в Dynamics Crm. На открывшейся странице есть кнопка и модальная диалоговая форма. Пока что большинство тестовых примеров корректно работают с WatiN, за исключением конкретного случая использования.
Если в модальном диалоговом окне задана определенная комбинация элементов управления, диалоговое окно подтверждения появится после того, как пользователь нажмет кнопку отправки. Если пользователь выберет ОК, он продолжит выполнение отправки, если отменить, он вернется обратно в модальное диалоговое окно. Время ожидания теста истекает, когда появляется это диалоговое окно подтверждения. Кажется, я не могу правильно настроить обработчик, чтобы поймать диалог подтверждения.
Вот метод тестирования, который я пробовал:
[TestMethod]
public void Add_New_Post_To_Record_Public_NotOnBehalf_NoSub_No_Notifications()
{
using (var browser = new IE("URL to the IFRAME"))
{
var approveConfirmDialog = ReturnDialogHandler.CreateInstance();
var confirmCode = Guid.NewGuid();
//logon to CRM
logonToADFS(browser);
var recordPage = browser.Page<DiscussionRecordpage>();
recordPage.CreateNewPostButton.ClickNoWait();
HtmlDialog dialog = browser.HtmlDialog(Find.ByTitle("New Post"));
var messageText = dialog.TextField(Find.ByClass("required"));
messageText.TypeText("Type some text. Confirmation code: " + confirmCode.ToString());
var button = dialog.Button(Find.ByClass("submit-button"));
using (new UseDialogOnce(browser.DialogWatcher, approveConfirmDialog))
{
button.ClickNoWait();
approveConfirmDialog.WaitUntilExists();
approveConfirmDialog.OKButton.Click();
}
browser.WaitForComplete();
Assert.IsTrue(browser.ContainsText(confirmCode.ToString()));
}
}
Я пробовал несколько разных вариантов с одинаковым результатом. Я предполагаю, что мне нужно использовать метод ReturnDialogHanlder.CreateInstance () для совместимости с IE9, но стандартный ConfirmDialogHandler тоже не работал. Честно говоря, я не знаю, правильно ли я использую обработчик диалогового окна в этом случае, но я могу нажимать кнопки ОК в других диалоговых окнах подтверждения, которые появляются из кнопок на других страницах. Это немного уникально, поскольку создается из модального диалогового окна, а не из страницы.
Я также пробовал использовать этот пользовательский обработчик (C # WatiN - Добавить AlertDialogHandler, чтобы нажимать кнопку ОК в каждом диалоговом окне предупреждения) безрезультатно.
Заранее спасибо.