Hello Tuan,
Are you creating a GenericDialog and adding it to the monitor for each dialog to be handled? The following code worked for me against a public site with an Alert dialog:
[TestMethod]
public void TwoAlertsCustom()
{
Manager.Settings.UnexpectedDialogAction = UnexpectedDialogAction.DoNotHandle;
Manager.LaunchNewBrowser(BrowserType.InternetExplorer);
GenericDialog ad = new GenericDialog(ActiveBrowser, "Message", true);
ad.HandlerDelegate = MyCustomAlertHandler;
ad.DismissButton = DialogButton.OK;
GenericDialog ad2 = new GenericDialog(ActiveBrowser, "Message", true);
ad.HandlerDelegate = MyCustomAlertHandler;
ad.DismissButton = DialogButton.OK;
Manager.DialogMonitor.AddDialog(ad);
Manager.DialogMonitor.AddDialog(ad2);
Manager.DialogMonitor.Start();
ArtOfTest.WebAii.Core.Browser frSub = ActiveBrowser.Frames["view"];
frSub.RefreshDomTree();
HtmlInputButton show = frSub.Find.ByExpression<HtmlInputButton>("value=Show alert box");
show.Click();
ad.WaitUntilHandled(5000);
show.Click();
ad2.WaitUntilHandled(5000);
Manager.DialogMonitor.RemoveDialog(ad);
Manager.DialogMonitor.RemoveDialog(ad2);
Manager.DialogMonitor.Stop();
//Manager.Dispose();
}
public static void MyCustomAlertHandler(IDialog dialog)
{
Window okButton = WindowManager.FindWindowRecursively(dialog.Window.Handle, "OK", false, 0);
Manager.Current.Desktop.Mouse.Click(MouseClickType.LeftClick, okButton.Rectangle);
dialog.HandleCount++;
}
Greetings,
Anthony
the Telerik team