如何使用IE9捕获watin中的alertDialogHandler?

时间:2012-10-23 08:36:13

标签: c# watin

我正在使用watin进行网络测试,现在出现了一个奇怪的问题:有一个注册页面,当点击注册按钮时,如果安全号码不正确,则会出现一条js弹出消息将显示,如果数字正确,js弹出窗口将不会显示。我用IE9测试它,我使用的代码是这样的:

var alertDialogHandler = new AlertDialogHandler();
using (new UseDialogOnce(ie.DialogWatcher, alertDialogHandler))
{
  ie.Button(Find.ByName("registe_r")).Click();
  MessageBox.Show(alertDialogHandler.Message);
  if (alertDialogHandler.Exists())
  {
     alertDialogHandler.OKButton.Click();

  }
} 

奇怪的是,无法捕获alertDialogHandler和代码

MessageBox.Show(alertDialogHandler.Message);

将返回错误:“操作不可用。对话框不存在。”

我尝试了几种方法来弄清楚如何解决这个问题却失败了,是否有可能是由IE9引起的?我记得两年前,当我使用IE7时,这种方法非常好。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

这段代码在IE9上适合我,试试吧:

            AlertDialogHandler alertDialogHandler = new AlertDialogHandler();
            ie.AddDialogHandler(alertDialogHandler );
            ie.Button(Find.ByName("registe_r")).Click();      
            alertDialogHandler.WaitUntilExists();
            alertDialogHandler.OKButton.Click();
            ie.RemoveDialogHandler(alertDialogHandler);