我使用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();
}
}
答案 0 :(得分:4)
这应该有效:
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; }");
答案 1 :(得分:0)
我见过的例子看起来更像是这样: -
ConfirmDialogHandler confirm = new ConfirmDialogHandler();
using (UseDialogOnce udo = new UseDialogOnce(BrowserIe.DialogWatcher, confirm))
{
dlgHnd.WaitUntilExists();
confirm.OKButton.Click();
}