越使用WatiN越觉得他是一个很好的测试工具。。。
不过在网上找到的几个例子都有问题,而且没讲到如何测试Alert弹出窗口。自己研究了一下。终于解决了。做个笔记,以防自己忘记。
有一个注册页面,要求输入一个唯一的Email地址,如果存在了地址,则弹出一个Alert窗口进行提示。下面是测试的步骤。
(我用的单元测试工具是NUnit。Nunit和WatiN一起使用有一个配值问题,参考另一篇文章)
为了简单我在页面就放一个Email输入文本框
用户输入邮件地址后,通过ajax在服务端验证邮件地址是否已经存在,存在则跳出弹出窗口提示邮件存在!下面是测试代码
public void TestEmail()
{
WatiN.Core.DialogHandlers.AlertDialogHandler dh = new WatiN.Core.DialogHandlers.AlertDialogHandler();
IE ie = new IE("http://localhost/ReisterAndLogin/RegisterUser.aspx");
ie.AddDialogHandler(dh);//增加一个控制句柄

ie.TextField(Find.ByName("txtEmail")).TypeText("5a6j@sohu.com");
ie.Button(Find.ByName("btnRegister")).ClickNoWait();
dh.WaitUntilExists();
string mess = dh.Message;
dh.OKButton.Click();//点击这个窗口的OK按钮
ie.WaitForComplete();
ie.RemoveDialogHandler(dh);
ie.Close();
Assert.AreEqual("邮件地址已经存在",mess); 


}

特别说明的有一些教程说
//dh.WaitUntilExists(3);
但是发现总是会出错,后来根据官网文档上的教程应该是使用dh.WaitUntilExists();方法。
现在运行Nunit后,可以自动测试这段代码。方便,省心

本文介绍如何使用WatiN测试包含Alert弹窗的Web应用。以注册页面为例,演示了当输入已存在的邮箱地址时,如何通过WatiN捕获并验证弹窗消息。
232

被折叠的 条评论
为什么被折叠?



