WatiN——Web自动化测试(三)【弹出窗口处理】

 🔥 交流讨论:欢迎加入我们一起学习!

🔥 资源分享耗时200+小时精选的「软件测试」资料包

🔥 教程推荐:火遍全网的《软件测试》教程  

📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

上一节我们说了关于WatiN的自动化的框架的设计,一般的系统应用应该可以。关于Case的本身的编写在实际应用中也会有一些问题和难题。这一节我将

WatiN的弹出框作一下详细的总结。在实际网页中,操作按钮可能弹出各种样式的弹出框,如何进行有效的处理呢?

1、Alert Dialog

Alert对话框很简单,弹出之后只是一个提示作用,弹出之后进行确认即可。

复制代码

public static void CaptureAlertDialog(this Browser browser, Action<AlertDialogHandler> operation, int waitTimeInSeconds)
{
  var handler = new AlertDialogHandler();
  using (new UseDialogOnce(browser.DialogWatcher, handler))
  {
    operation(handler);
    handler.WaitUntilExists(waitTimeInSeconds);
    if (handler.Exists())
      handler.OKButton.Click();
  }
}

复制代码

CaptureAlertDialog:是处理alert对话窗方法,其传入的参数分别是:Browser浏览器对象、Acation<AlertDialogHandler> alert句柄、waitTimeSeconds 等待时间

context.Browser.CaptureAlertDialog((AlertDialogHandler handler) => { btn.WaitUntilExistsAndClickNoWait(context.TestConfig.Timeout); }, 5);

btn.WaitUntilExistsAndClickNoWait(context.TestConfig.Timeout); 为button的点击事件。

2、Confirm Dialog

复制代码

public static void CaptureConfirmDialog(this Browser browser, Action<ConfirmDialogHandler> operation, int waitTimeInSeconds)
{
  var handler = new ConfirmDialogHandler();
  using (new UseDialogOnce(browser.DialogWatcher, handler))
  {
    operation(handler);
    handler.WaitUntilExists(waitTimeInSeconds);
    if (handler.Exists())
    {
      handler.OKButton.Click();//确认按钮 handler.CancelButton.Click();取消按钮
    }
  }
}

复制代码

复制代码

context.Browser.CaptureConfirmDialog((ConfirmDialogHandler handler) =>
{
btn.WaitUntilExistsAndClickNoWait(context.TestConfig.Timeout);
}, 5);


btn.WaitUntilExistsAndClickNoWait(context.TestConfig.Timeout);为Button点击事件

复制代码

3、文件下载对话框FileDownloadHandler

复制代码

var btn = "获取button按钮";

var fileName = System.Windows.Forms.Application.StartupPath + "保存路径文件名";
FileDownloadHandler fileDownloadHandler = new FileDownloadHandler(fileName);
using (new UseDialogOnce(context.Browser.DialogWatcher, fileDownloadHandler))
{
  btn.WaitUntilExistsAndClickNoWait(context.TestConfig.Timeout);
  context.Browser.WaitUntil(5);
  fileDownloadHandler.WaitUntilFileDownloadDialogIsHandled(60);
  fileDownloadHandler.WaitUntilDownloadCompleted(200);
}

4、网页对话框(window.open)

有的网页对话框通过window.open的方式进行打开的是其他的页面,比如通过其他的页面进行添加分类等等,遇到此处的时候应该如何处理呢?其实这等窗口是页

面,内容可以通过Browser对象来进行获取。

首先需要将主浏览器对象进行保存,让这个browser对象再打开新窗口,从中获取窗口页面的URL

如下代码:

var orginBrowser = context.Browser;//context.Browser浏览器对象
try
{
  Div.Button(btn => btn.ClassName == "ButtonStyle").WaitUntilExistsAndClick(context.TestConfig.Timeout);//Button按钮,进行onclick事件
  context.Browser.WaitUntil(3);//等待3秒
  context.Browser = WatiN.Core.Browser.AttachTo(context.Browser.GetType(), Find.ByUrl(url => url.IndexOf("页面名称") > -1), context.TestConfig.Timeout);//查找新窗口的页面名称
  context.Browser.Refresh();//进行刷新
  ///
  ///对窗口中的内容进行操作
  ///
  context.Browser.Close();
}
catch { }
 context.Browser = orginBrowser;

在WatiN自动化测试中,一般遇到的弹出窗口也就上面的四种,基本上都可以解决网页中的问题。

最后我邀请你进入我们的【软件测试学习交流群:785128166】, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路

作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:程序员二黑】自提!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值