WatiN系列之二 解析Watin

转帖地址:http://www.51testing.com/?uid-61753-action-viewspace-itemid-219958


概述 ^Y#h!H*K�q~ } e0

Watin 作为一个自动化测试 , 具有轻便 , 灵活的特点。而这都建立在对复杂操作封装的基础之上。 Watin 的原理和其它 web 自动化测试工具基本类似,就是通过操纵浏览器和 web 页面中的 DOM 对象来实现模拟用户操作网页。 Watin 封装了复杂的 DOM 操作并提供了大量的扩展,使对 web 网页的操作更灵活,更简便。本篇文章 并不能做到深入解析 Watin 具体的原理 , 内部架构,也没必要去深究。我们要做的就是以使用者的角度去分析如何使用 watin 并不断在工作 中完善。

&|;]dA:OLQ6o9V0

  51Testing软件测试网:]og"O2~6xZT-m

HTML 元素与 Watin 类的映射 51Testing软件测试网4A z8_3s"_ cU

   在介绍 watin 类和方法用途之前,大家最好对 HTML 元素与 watin 类的映射关系进行一个大体的了解。因为你在编写测试代码之前,首先是通过工具查看 web 页面中元素的信息,确定该元素的类型时候,通过映射关系才能确定使用 watin 中的哪个类。所以这个映射关系很重要。 51Testing软件测试网3NeYT/]$u+i c'[;T

WatiN系列之二 解析Watin_第1张图片

4|6U)bMyE*J@0


)Y(J9Mya#D0@r0


:mn@3rRp0

详细的映射关系,请查看 映射表

C M7[4C(_ fLc0

 

:E$O4?d?0

Web 页面常用元素操作 51Testing软件测试网 MN+Q(mT7h

   介绍 Watin 如何对 web 页面中常见的一些元素进行操作。以及 watin 相关类和方法的介绍。在详细说明之前,首先创建一个页面,其中加入常用的页面元素 ( 比如 inpu,label ) ,用来演示测试代码。具体代码见附件。

%U�R |Vt#gK0

   然后再介绍一下,在编写测试代码过程中常用的类和主要的方法。

gu�ouR5p2Z0

Watin 中常用的类和方法

X�pO5buj0

   IE : 最基础,最重要的一个类,用于访问 Web 页面中的元素以及操纵 IE 浏览器。

/}1NV//X!BV0

Goto( string): 导航到某个地址的网页。 51Testing软件测试网%B3mq#pKv7@&N

Close() : 关闭浏览器 51Testing软件测试网,m*G I)`(D(G

ContainsText(String): 是否包含指定的文本文字

J(Y3u%R:Q$RaU0

CaptureWebPageToFile(string): 对当前 web 页截图并保存到指定位置

m]7n-i ^jlb#p0

ClearCache(): 清除 Cache 51Testing软件测试网|:@6h*])VK

ClearCookie(): 清除 Cookie 51Testing软件测试网 /:p&o&{ ME3Px x

………  51Testing软件测试网 W/@0j1E8uK

  Find : 也是必须用到的一个类,用于查找并定位 web 页面中的元素。 51Testing软件测试网@:k4Q7yslH&e h

Byid() : 通过元素的 id 属性进行查找

Q$Z/X9u5V^]"f0

Byname(): 通过元素的 name 属性进行查找 51Testing软件测试网rE)x#Nz

………

)|k;i)u)U]#q N(l0

  其它类和方法请详见 MSDN style. online documentation   

`3G{ib gc0

  Watin 对常用页面元素的操作

gf"S�ZJ�uc%rj0

<A> 元素

!l N%Tfv;?6n"?:?1E0

  51Testing软件测试网@Q#i cp]

  <a> 标签对应 DOM 中的 Anchor 对象。表示 Html 中的超链接。

fB"i2shs)k0

2]c^s!_*d ft0

< a id ="baidu" href = "http://wwww.baidu.com"> 百度 </ a >

+^'Rd N9xW0

51Testing软件测试网1O-~ X)n||&q8k

Watin 操作 <a> 元素的代码如下 51Testing软件测试网 K6SD+vV!e

oP3Q?9tN9m0

ie.Link(Find .Byid("baidu" )).Text;//返回超链接文字 51Testing软件测试网ko6f%L6c_bJ |

ie.Link(Find .Byid("baidu" )).Url;//返回超链接的Url

!s!G,C/B;T0

ie.Link(Find .Byid("baidu" )).Click();//点击超链接 51Testing软件测试网3V$`%N0O}9bpJ2z;m'Z'W

51Testing软件测试网�Bb/I ZS7H+`

备注:有些开发不规范的 web 页,有可能只有 href 属性存在的现象,这时只有通过 Find.ByUrl url )进行查找。

)J*]%S9e(S~]0

  51Testing软件测试网j;~+~�Wk$sr/a+V

<input type="text"> 元素

K"c%[,~A*A&J'Y%[�Qu{0

  <input type="text"> 元素对应 HTML DOM 中的 Text 对象。表示一个单行的标准输入框。

@7iZN&Y0 51Testing软件测试网9tG t*{1p X:O RZPY,|

< input id ="Text1" type ="text" />欢迎!</ p > 51Testing软件测试网8MBN4P{

51Testing软件测试网v�}-PX1]

Watin 操作 <a> 元素的代码如下 51Testing软件测试网k w0J Bvx2pB

51Testing软件测试网5{@9VvQ Scb

ie.TextField (Find .Byid(" Text1 " )).Value;//返回输入框中的文字

kF"| Or9E0

ie.TextField (Find .Byid(" Text1 " )).TypeText("Watin" );//输入框中输入 Watin

0c NN}(H S,I0

2Y0| dT Wy0/1z0

 

.SVq2X3m+a!@0

  51Testing软件测试网j:O6W$}2w1y2M

<input type="button"> 元素

0Z&d1A F6O9NF0

<input type="button"> 元素对应 HTML DOM 中的 Button 对象。表示一个按钮 51Testing软件测试网&y8C2XhE!SL dnZ

51Testing软件测试网@2iN5Z�txK7H^F}

< input id ="btn" type ="button" />登录</ p > 51Testing软件测试网g [xV4^kUMK/`

6}!a8}k�WYLR#H0

Watin 操作 <a> 元素的代码如下

],C|2A Ls0 51Testing软件测试网D/|:i/Hk!XS

Ie.Button (Find .Byid(" btn " )).Text;//返回按钮中的文字

~*gHMA�a5G|VM.}h0

ie.Button (Find .Byid(" btn " )).Click();//点击按钮

%d {gf|u0

W/z�{(h WA0

 

,m Y#IlBQ5T/x0

  51Testing软件测试网mJq9j�_*c/`

<input type="checkbox"> 元素

^oU#Q1V;X0e0

<input type="Checkbox"> 元素对应 HTML DOM 中的 Checkbox 对象。表示一个选择框

7S/:fC} ]UQ0

mN-l P^7l3`0

< input id ="chk" type ="checkbox" />勾选</ p > 51Testing软件测试网UzO;Ov6J.H I3J1s

XQ2wM4d(/ en R0

Watin 操作 <a> 元素的代码如下

d4t#ti OI�d0 51Testing软件测试网{MfkBE/6iE

Ie.CheckBox (Find .Byid(" chk " )).Text;//返回选择框的文字 51Testing软件测试网,{%g8kcpA

ie.CheckBox (Find .Byid(" chk " )).Click();//点击选择框 51Testing软件测试网~;a ED:~-JE

ie.CheckBox (Find .ById(" chk " )).Checked =true ;//设置Checkbox的勾选状态 51Testing软件测试网6V%TEm/y |} H{

51Testing软件测试网'E L#w"q0gzl~

 

:O:J3Dw*e4O)q[0

<area> 元素 51Testing软件测试网W,t,x#t r@+k O1M

<area> 标签对应 HTML DOM 中的 area 对象。表示图像映射的一个区域(图像映射指的是带有可点击区域的图像)

.v tG%M)Cu U5c[0

< img src ="map/map.jpg" alt ="校区地图" width ="1004" height ="601" border ="0" usemap ="#Map" />

Tbw$Y-?F#O]3u0

< map name ="Map" id ="Map">

%@t@/u6_dW)F }"Y0

< area   shape ="rect" alt ="a1" coords ="134,59,255,92" href ="edushiMap.html"   /> 51Testing软件测试网 d6D a2{U G(M'c^

< area shape ="rect" alt ="a2" coords ="345,122,464,160" href ="edushiMap.html" /> 51Testing软件测试网.r I?1E`/G I//7Z

</ map > 51Testing软件测试网7NH#p V _2~d

*?g!y pMY%y.S0

 

.hhL W:H$M:Nd0

Watin 操作 <area> 元素的代码如下 51Testing软件测试网b+k"u6Htk5c

ie.Area(Find .ByAlt("a1" )).Url;//返回area区域的url

j/?7Zm6A8tzg0

ie.Area(Find .ById("area1" )).Click();//点击area区域 51Testing软件测试网/ C7|#^"T*q2Z6c

ie.Area(Find .ByAlt("a1" )).Click();//点击area区域

/kXf{;wP0
  51Testing软件测试网 CXJ3`hH0d

<Select> 元素 51Testing软件测试网;U!{8X&?#Kfv!g

<Select> 元素对应 HTML DOM 中的 Select 对象。表示一个下拉列表 51Testing软件测试网{)ax+]C#a&v8SPr

51Testing软件测试网(}_l`x Z,X

< select id ="Select1"> 51Testing软件测试网&?+K|gR^W~zT

    < option > 1</ option > 51Testing软件测试网t.c}G:fT"ev

    < option > 2</ option > 51Testing软件测试网2h7i&E-b0qmM

</ select > 51Testing软件测试网+~*_w7m U[

51Testing软件测试网PN*w8Y8E7K&q(n

Watin 操作 <Select> 元素的代码如下 51Testing软件测试网t$|8R�e~#FQ }

M+l3x!x4Y/t-xI'vu0

ie.SelectList(Find .ById("Select1" )).Select(string);//返回选择框的某项 51Testing软件测试网 y0o6D&F5p?3[6[1H)K

51Testing软件测试网a4j Bp/?}*[

 

JJ*u4Iptdvb0

  51Testing软件测试网!j0V!kMg

<table> 元素 51Testing软件测试网(/:d.[i/"X0eY-l8K

<table> 元素对应 HTML DOM 中的 table 对象。表示一个表格 51Testing软件测试网]v7bu-E4hN0D*q:G

51Testing软件测试网4n luHkCe

< table style =" width :100% ;" id ="table1"   class = "class1">

|p^5k'r6xg0

    < tr >

0n5G9s DSC0

        < td class ="style1"> 51Testing软件测试网J&M)s{I

             第1行第1列</ td >

6nell.J0

        < td class ="style1">

7kre9e5E y M0W0

            &nbsp; 51Testing软件测试网^6Kt(|m

            第1行第2列</ td > 51Testing软件测试网Gq�o1@4wL g

    </ tr >

r.u uH DE0

    < tr >

'X#N U[TWpd0

        < td >

E$r$kmX:~I|0

            第2行第1列</ td > 51Testing软件测试网)w{Vc t

        < td >

HAo s5h.zk0

            &nbsp; 51Testing软件测试网 {4z9L/u l~�d

            第2行第2列</ td >

;t!B,vW?M0

    </ tr >

t*[y)c]0

    </ table >

"|}1~3/C�e0

51Testing软件测试网+i X$PIc n#t[c

Watin 操作 <table> 元素的代码如下

X^&a e eNN0

#_oP%Uh%b&n EP.H${0

ie.Table(Find .ByClass("class1" )).TableRows[0].TableCells[1].Text;//返回表格中项的数据

你可能感兴趣的:(html,String,软件测试,documentation,button,testing)