watIN使用心得

来源:互联网 发布:snapped mac 编辑:程序博客网 时间:2024/05/20 18:54

watin是一款开源的,.net使用的自动化测试工具。我主要是利用它模拟web操作功能来完成一些简单的操作。关于测试方面的操作就是assert之类,我并没做深刻研究。


它比较好的优点就是开源,有完善的一套库文档。有问题支持(stackoverflow)。经过了一段时间的资料收集和阅读,发现,现有中文资料比较少。特此做做笔记。


主要记录下,我对于WatiN.Core Namespace的理解


Core Namespace把常用的web对象已经做成很好的对象化封装。比如按钮就是Button类,div就是Div类,ifame类就是<iframe></iframe>的对象化。

而基于这些对象(Button类,Div类)的操作也做成了很有规律的成员函数。比如,点击就是click(),填写表单就是TypeText()。


下面介绍一下几个core namespace里面的类:


Browser类。就是对浏览器的对象化,我们可以利用attachTo的方法关联一个已打开的IE,Firefox。然后通过代码操作这个浏览器。也可以通过new一个browser类来打开一个新的浏览器窗口。


Control类。可以对一些复杂的web操作进行对象封装。作者在官网上介绍了对一个web日期选择器的封装。


Element类。是刚刚将的Button类,Iframe类的基类。


Find类。最重要的类。通过Find类,代码中的对象与web对象对应起来了,进而在代码中可以用Button类对象来操作这个被Find类确定了的按钮。(我感觉find是通过html代码文本搜索来确定对象的。在通过一定方法创建对象)


Page类。对网页的对象封装。可以直接把一个网页的操作用一个page类来封装表示。


Setting类。对watin的一些设置。比如Find类的查找行为的的一些设置。


WaitForCompleteBase类。网页操作要考虑到网络传输的问题。当某个页面还没加载完成的时候就需要等待加载,再进行操作。这个类就是这个作用。


Find使用举例:

比如想获得下面div id="dialog"下面的iframe。

WatiN.Core.IE ie = WatiN.Core.IE.AttachTo<IE>(Find.ByTitle(m_ieTitle));WatiN.Core.Frame iframe = ie.Frame(Find.By("width", "300").And(Find.By("height", "350")));

find也支持正则表达式,C#的Lambda表达式等待。总之很是强大。需要多研究。



原创粉丝点击