三、应用中的一些技巧
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() ie.AddDialogHandler(dh); |
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软件测试网原创作品,转载请保留链接,标明本文原始出处、作者信息和本声明,否则将追究法律责任。