使用.net开发Web自动化测试工具

发表于:2009-7-06 15:42

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:zuki    来源:51Testing博客

  三、应用中的一些技巧

  1、如何去捕获一个新弹出的窗口。

  背景:有些链接是从一个新弹出的窗口中打开的,我如果关连上这类型的窗口。

        public void Login(string uid, string passwd)
        {
            string url = Host + "frmlogon.aspx";
            ie = new IE();
            ie.GoTo(url);
            ie.WaitForComplete();
            ie.TextField(Find.ById("txtUserName")).Value = uid;
            ie.TextField(Find.ById("txtPwd")).Value = passwd;
            ie.Button(Find.ById("btnLogin")).ClickNoWait();//这个方法改成这样,那点击后就不会等代码IE完成了。
            //下面这句就是处理登陆的技巧所在,系统打开了另一个窗口。
            //下面这句就是用正则表达式捕获这个窗口。
            ie = IE.AttachToIE(Find.ByTitle(new WatiN.Core.Comparers.RegexComparer(new System.Text.RegularExpressions.Regex(".*自动化测试.*"))));
            ie.WaitForComplete();
            MainFrame. = ie.Frame(Find.ByName("MainFrame_00001"));
            MenuFrame. = ie.Frame(Find.ById("leftMenu"));//把系统里的Frame先保存下来。
        }

  2、对于alert 、confirm 等javascript弹出的窗口的捕获。

  背景:一个系统经常会使用以上这些javascript来弹出一些提示信息,如果捕获这些窗口,并模拟用户点击这些窗口上的OK或Cancel按钮?

  方案:其实WatiN在默认情况下,都会自动地去点击这些弹出式窗口上的Cancel按钮的,但如果用户要明确点击哪些事件的话可以对IE对象增加一个“查看器”()

protected void f()
        {
            WatiN.Core.DialogHandlers.ConfirmDialogHandler dh = new WatiN.Core.DialogHandlers.ConfirmDialogHandler();

            ie.AddDialogHandler(dh);
            doc.Button(Find.ByName("yzp_dic_btn_cls")).ClickNoWait();//把原来的Click改成这个方法。
            dh.WaitUntilExists(3);//等待弹出窗口的出来。最多等三秒。
            dh.OKButton.Click();//点击这个窗口的OK按钮
            ie.RemoveDialogHandler(dh);
            doc.Button(Find.ByName("btn_close")).Click();
        }

  3、关于用JS弹出的Modal窗口(模式窗口)的处理。

  背景:有些地方需要弹出模式窗口来处理数据。

  方解:当点击了弹出模式窗口的按钮或连接后马上用IE对像的HtmlDialogs属生来获取模式窗口。

         protected void f()
        {
            //假设下面这行代码会弹出一个模式窗口把原来的Click改成这个方法。
            //记住这里要用ClickNoWait而不能用Click,否则在模式窗口关闭之前代码不会继续执行。
            ie.Button(Find.ByName("yzp_dic_btn_cls")).ClickNoWait();
            ie.HtmlDialogs[ie.HtmlDialogs.Length - 1].TextField(Find.ByName("Q")).Value = "Hello";
            ie.HtmlDialogs[ie.HtmlDialogs.Length - 1].Button(Find.ByName("btn_query")).Click();

  WatiN 官方网址:http://watin.sourceforge.net/可以在上面下载组件。

本文出自zuki的51Testing软件测试博客:http://www.51testing.com/?158086

版权声明:51Testing软件测试网原创作品,转载请保留链接,标明本文原始出处、作者信息和本声明,否则将追究法律责任。

22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号