标签:watin testing automation c net
每当出现对话框且没有附加的处理程序时,watin自动关闭对话框.当您不想为应用程序可能具有的不同/几个简单确认添加代码时,这很有用.
问题在于,使用此默认行为会导致一些简单的问题不被注意,例如在不应出现的情况下出现确认对话框.
我正在寻找一种简单的方法来在出现未处理的对话框时正常地使测试失败.优雅的意思是,当对话框出现异常时测试将立即停止,这会给出一条不错的消息,让您知道这是意外的对话框错误.
解决方法:
另一个选择是使用AlertAndConfirmDialogHandler.此处理程序确实关闭每个警报或确认弹出的对话框,但首先它获取对话框显示的文本并将其存储.您可以检查此Alerts字符串数组,并查看Count是否为零.您可以在测试类的Teardown或FixtureTeardown中执行此操作.
在WatiN单元测试的测试副本之后,向您展示如何使用此处理程序:
[Test]
public void AlertAndConfirmDialogHandler()
{
DialogWatcher dialogWatcher;
Assert.AreEqual(0, Ie.DialogWatcher.Count, "DialogWatcher count should be zero before test");
// Create handler for Alert and confirm dialogs and register it.
var dialogHandler = new AlertAndConfirmDialogHandler();
using (new UseDialogOnce(Ie.DialogWatcher, dialogHandler))
{
Assert.AreEqual(0, dialogHandler.Count);
Ie.Button("helloid").Click();
Assert.AreEqual(1, dialogHandler.Count);
Assert.AreEqual("hello", dialogHandler.Alerts[0]);
// remove the alert text from the queue by using Pop
Assert.AreEqual("hello", dialogHandler.Pop());
Assert.AreEqual(0, dialogHandler.Count);
// Clear the queue
Ie.Button("helloid").Click();
Assert.AreEqual(1, dialogHandler.Count);
dialogHandler.Clear();
Assert.AreEqual(0, dialogHandler.Count);
dialogWatcher = Ie.DialogWatcher;
}
Assert.AreEqual(0, dialogWatcher.Count, "DialogWatcher count should be zero after test");
}
这也触发了我使AutoClose行为更可插入.如果可以注册一个对话框处理程序,如果没有其他处理程序可以处理一个对话框,而不仅仅是自动关闭对话框,则将被调用会很好.
高温超导
耶罗恩·范·梅嫩(Jeroen van Menen)
首席开发人员WatiN
标签:watin,testing,automation,c,net
来源: https://codeday.me/bug/20191107/2004113.html
本站声明:
1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。