51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4009|回复: 3
打印 上一主题 下一主题

[原创] 有没有人用watiN

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-1-13 15:32:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有没有人用过watiN,能不能给一个自动点击弹出框的代码?谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-1-15 09:47:55 | 只看该作者
俺没有用过
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-1-15 11:50:13 | 只看该作者
好了,终于在sourceforge的网站上找到了一个例子,搞定了。
- create a new IE instance

- add the confirmDialogHandler (using the UseDialogOnce class)

- Click (no wait!) the button

- Wait (30 seconds) for the dialog (if it doesn't show up you'll get an exception)

- Assert the confirm dialog message

- Click the OK button on the dialog.

- Wait until the dialog is closed (ie.WaitForComplete)

- Assert the right button was clicked (OK is put into a textfield by some java script in this specific html page).



It also uses the UseDialogOnce class to make sure the dialoghandler gets removed from dialogwatchers if the assertion fails. The using statement always calls a Dispose method on a class which inplements IDisposable. I recommend using this otherwise you might end up with strange test results (the WatiN tests where bugged with this for a while).

[ 本帖最后由 peter530 于 2007-1-15 11:54 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2007-1-15 11:54:38 | 只看该作者
[Test]

public void ConfirmDialogHandlerOK()

{

using(IE ie = new IE(TestEventsURI))

{

ConfirmDialogHandler confirmDialogHandler = new ConfirmDialogHandler();



using(new UseDialogOnce(ie.DialogWatcher, confirmDialogHandler))

{

ie.Button(Find.ByValue("Show confirm dialog")).ClickNoWait();



confirmDialogHandler.WaitUntilExists();



Assert.AreEqual("Do you want to do xyz?", confirmDialogHandler.Message);



confirmDialogHandler.OKButton.Click();



ie.WaitForComplete();



Assert.AreEqual("OK", ie.TextField("ReportConfirmResult").Text, "OK button expected.");

}

}

}



public class UseDialogOnce : IDisposable

{

private DialogWatcher dialogWatcher;

private IDialogHandler dialogHandler;



public UseDialogOnce(DialogWatcher dialogWatcher, IDialogHandler dialogHandler)

{

this.dialogWatcher = dialogWatcher;

this.dialogHandler = dialogHandler;



dialogWatcher.Add(dialogHandler);

}



#region IDisposable Members



public void Dispose()

{

dialogWatcher.Remove(dialogHandler);



dialogWatcher = null;

dialogHandler = null;

}



#endregion

}
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-25 04:48 , Processed in 0.063844 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表