WatiN系列之二 解析Watin
上一篇 / 下一篇 2010-09-09 18:00:32 / 天气: 阴雨 / 心情: 平静 / 个人分类:WatiN
概述51Testing软件测试网8nO([o G5Y-E:E
Watin作为一个自动化测试库,具有轻便,灵活的特点。而这都建立在对复杂操作封装的基础之上。Watin的原理和其它web自动化测试工具基本类似,就是通过操纵浏览器和web页面中的DOM对象来实现模拟用户操作网页。Watin封装了复杂的DOM操作并提供了大量的扩展,使对web网页的操作更灵活,更简便。本篇文章并不能做到深入解析Watin具体的原理,内部架构,也没必要去深究。我们要做的就是以使用者的角度去分析如何使用watin并不断在工作中完善。51Testing软件测试网nEGN2|{E-xY
51Testing软件测试网 ?2L @0[}/|8a C7}
HTML元素与Watin类的映射51Testing软件测试网D/W/P0q$i}J v
在介绍watin类和方法用途之前,大家最好对HTML元素与watin类的映射关系进行一个大体的了解。因为你在编写测试代码之前,首先是通过工具查看web页面中元素的信息,确定该元素的类型时候,通过映射关系才能确定使用watin中的哪个类。所以这个映射关系很重要。51Testing软件测试网4I*Z9N"Hj7PR'W,|
51Testing软件测试网uJEz:QRQc
(]q PH:c*|(Wnok0 %{c A`Y0
详细的映射关系,请查看映射表。
9F;Sk&c+G,~1x)p-x&B04w5kvC}uo5mH;f0
Web页面常用元素操作
'BN V;sn5`s-D0介绍Watin如何对web页面中常见的一些元素进行操作。以及watin相关类和方法的介绍。在详细说明之前,首先创建一个页面,其中加入常用的页面元素(比如inpu,label等),用来演示测试代码。具体代码见附件。51Testing软件测试网O\&u l ]$N3y+n^ R
然后再介绍一下,在编写测试代码过程中常用的类和主要的方法。51Testing软件测试网7_{~0T+Gl
Watin中常用的类和方法
(S:he'nx3FN%]0IE类:最基础,最重要的一个类,用于访问Web页面中的元素以及操纵IE浏览器。51Testing软件测试网IxMbD IiB;]
Goto( string):导航到某个地址的网页。51Testing软件测试网\i)eN;Kxj3L/c
Close() :关闭浏览器51Testing软件测试网*m!H!@#}h+~
ContainsText(String):是否包含指定的文本文字
Vhj zj2J?0CaptureWebPageToFile(string):对当前web页截图并保存到指定位置
ux7|1]Q|2v%S0ClearCache():清除Cache51Testing软件测试网'Y&@@u4T I/v/pc P
ClearCookie():清除Cookie
UAeV I!i yo m0……… 51Testing软件测试网4yQ Q-qA(m*Z_ r/w
Find类:也是必须用到的一个类,用于查找并定位web页面中的元素。
s U `"e4AmM'c0Byid() :通过元素的id属性进行查找
n$p6z+y*W9\0Byname():通过元素的name属性进行查找
O{3@s&o X3q4Q9I0………
m*y G#u?}i0其它类和方法请详见MSDN style. online documentation 51Testing软件测试网\9gr7G}
Watin对常用页面元素的操作
G HaQ/ek ?C0<A>元素51Testing软件测试网)Q(drUQ#y y,bA
51Testing软件测试网3} fne(G0Vf g
<a>标签对应DOM中的Anchor对象。表示Html中的超链接。51Testing软件测试网J2c(B`&k bX
51Testing软件测试网6hR5M] X m mz
<aid="baidu"href="http://wwww.baidu.com">百度</a>51Testing软件测试网.NE-H4`+J5^P1X$C(| |
Watin操作<a>元素的代码如下51Testing软件测试网&aar_a9]
51Testing软件测试网/H Z4POyzI
ie.Link(Find.Byid("baidu")).Text;//返回超链接文字 -R]ym[ Q,U0ie.Link(Find.Byid("baidu")).Url;//返回超链接的Url JHP*Z#~ whk5b8r0ie.Link(Find.Byid("baidu")).Click();//点击超链接 !G Fd-\7Y)ZL3l'AzL0 |
备注:有些开发不规范的web页,有可能只有href属性存在的现象,这时只有通过Find.ByUrl(url)进行查找。51Testing软件测试网/H `RFcZ\U mv
:Z.in^u{f0
<input type="text">元素51Testing软件测试网;x@FD1D0n
<input type="text">元素对应HTML DOM中的Text对象。表示一个单行的标准输入框。51Testing软件测试网O9I+RV0_{/\0zl
51Testing软件测试网B-l/wwhY-k
<inputid="Text1"type="text"/>欢迎!</p> L9C$pG:[0 |
Watin操作<a>元素的代码如下
}1^Cd2nk#b05q*D[D!ns5Nk0
ie.TextField (Find.Byid("Text1")).Value;//返回输入框中的文字51Testing软件测试网Eb.A2V#MGtgM ie.TextField (Find.Byid("Text1")).TypeText("Watin");//输入框中输入”Watin”51Testing软件测试网zA"Fi#I w |
51Testing软件测试网+nO{0F|Bw
!l'[/E`8`0
<input type="button">元素51Testing软件测试网C)u+F$i UB$d1v
<input type="button">元素对应HTML DOM中的Button对象。表示一个按钮51Testing软件测试网'P$nYcH)}%Dl
e}+UBb'xh3LP0
<inputid="btn"type="button"/>登录</p> [1E+dQ frn `U9H0 |
Watin操作<a>元素的代码如下51Testing软件测试网._JEz`
w4Qs AD#Z0x@H0OS0
Ie.Button (Find.Byid("btn")).Text;//返回按钮中的文字 V1~$cm!N&KL,N I0ie.Button (Find.Byid("btn")).Click();//点击按钮51Testing软件测试网5ts$|8U:oGT |
51Testing软件测试网R/buT-Im
}+M$lAUfT0
<input type="checkbox">元素51Testing软件测试网p+k?A k;z+j6Fr
<input type="Checkbox">元素对应HTML DOM中的Checkbox对象。表示一个选择框51Testing软件测试网Y{h9B(H9h
t/P Z;R!a0
<inputid="chk"type="checkbox"/>勾选</p>51Testing软件测试网(j7x&mhV,w { RI(K |
Watin操作<a>元素的代码如下51Testing软件测试网-Y*c$epg0J%ei+V l(R
51Testing软件测试网B@X0t8{ F#|C
Ie.CheckBox (Find.Byid("chk")).Text;//返回选择框的文字 @9g;P {0Q Ar0ie.CheckBox (Find.Byid("chk")).Click();//点击选择框 $\f,Q3D6by6[.|0ie.CheckBox (Find.ById("chk")).Checked =true;//设置Checkbox的勾选状态51Testing软件测试网#y f,MbKp Q M |
51Testing软件测试网5F:u*l'C+Z}!So
<area>元素51Testing软件测试网Hj2w`j` k
<area>标签对应HTML DOM中的area对象。表示图像映射的一个区域(图像映射指的是带有可点击区域的图像)51Testing软件测试网){Gq6C{$oAj.DPx C
<imgsrc="map/map.jpg"alt="校区地图"width="1004"height="601"border="0"usemap="#Map"/>51Testing软件测试网 Pb{W_;l6O*z <mapname="Map"id="Map">51Testing软件测试网5u Lb:r Q4u+g&p <area shape="rect"alt="a1"coords="134,59,255,92"href="edushiMap.html" /> jT7|:`}f _:j0<areashape="rect"alt="a2"coords="345,122,464,160"href="edushiMap.html"/>51Testing软件测试网Rp)sU[HgK$o$U </map>51Testing软件测试网1Yy.P@ Y |
51Testing软件测试网1RX)e9AZ8i{\
Watin操作<area>元素的代码如下
DgWx{;?*O!]0 ie.Area(Find.ByAlt("a1")).Url;//返回area区域的url IRw$d&F5B+C4E0ie.Area(Find.ById("area1")).Click();//点击area区域51Testing软件测试网(c#\/D,m }/O Wr0H ie.Area(Find.ByAlt("a1")).Click();//点击area区域 J6a+C6x4c9vsT0 |
Z9R+ydt(WL9b+T~5H @0
<Select>元素
![v?#d)lk0<Select>元素对应HTML DOM中的Select对象。表示一个下拉列表51Testing软件测试网E*MG"`|]
51Testing软件测试网GIY1~Q"w'UL
<selectid="Select1">51Testing软件测试网syB sz0`{R <option>1</option>51Testing软件测试网 g3{7S`%ur4wjFs <option>2</option>51Testing软件测试网$\SLG;I*X8v'U]c"T </select> #Z1CA'?0dJ(wr\L0 |
Watin操作<Select>元素的代码如下51Testing软件测试网j8c-iT ^m1jc
;h;mk I4ZBLdV0
ie.SelectList(Find.ById("Select1")).Select(string);//返回选择框的某项51Testing软件测试网6FEL p,L@l ny |
51Testing软件测试网0pG0p2F wb{[
51Testing软件测试网YY u[3T%j
<table>元素51Testing软件测试网*M4zgx-u"t!]Y
<table>元素对应HTML DOM中的table对象。表示一个表格
g\;\{'sD2E$dB0:o|g"c1g0
<tablestyle="width:100%;"id="table1" class="class1"> LpKN"KI'm} K?0<tr>51Testing软件测试网.o'N&DXU$@6^'Z,w <tdclass="style1">51Testing软件测试网xq"y0}w*i 第1行第1列</td> sb;DL,[QMm5W0<tdclass="style1">51Testing软件测试网 JFu/e^0R2|6Wo |Eu(b'B[0第1行第2列</td>51Testing软件测试网E#h6e)j rA </tr>51Testing软件测试网1RiCd[Zs{ <tr>51Testing软件测试网"@9N2N Ha,a#R EL/t <td> }r j3T+^ n0第2行第1列</td>51Testing软件测试网uqk`"W!r <td>51Testing软件测试网(L t'qhc(ba7ft 0N3gc+q+yY1O(M};wY0p0第2行第2列</td> 8I%B7Sj;Q \0J ZR0</tr> "Tt9^0q$N ^;vy'b0</table> DSRd#T l6QR c0 |
Watin操作<table>元素的代码如下51Testing软件测试网{(C R#zc:Xd
51Testing软件测试网%` v-EY w
ie.Table(Find.ByClass("class1")).TableRows[0].TableCells[1].Text;//返回表格中项的数据51Testing软件测试网 T5u'n-VO s+] |