我使用watin登录网站并检索信息。如果有另一个登录已经存在相同的帐户在其他地方,网站弹出一个窗口,说"关闭其他会话?",有两个按钮"是"one_answers"否"。我需要捕获这个并单击"Yes"。
我不知道什么类型的弹出是,我尝试了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();
}
}
应该可以:
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; }");
我看过的例子都是这样的:-
ConfirmDialogHandler confirm = new ConfirmDialogHandler();
using (UseDialogOnce udo = new UseDialogOnce(BrowserIe.DialogWatcher, confirm))
{
dlgHnd.WaitUntilExists();
confirm.OKButton.Click();
}