注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天涯倦客的博客

祝福你朋友永远快乐!

 
 
 

日志

 
 

WatiN系列之二 解析Watin  

2011-03-22 14:13:51|  分类: 软件测试 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

概述

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

 

HTML元素与Watin类的映射

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

WatiN系列之二 解析Watin - 海里的贝壳 - apple的博客

 

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

 

Web页面常用元素操作

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

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

Watin中常用的类和方法

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

Goto( string):导航到某个地址的网页。

Close() :关闭浏览器

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

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

ClearCache():清除Cache

ClearCookie():清除Cookie

……… 

 Find:也是必须用到的一个类,用于查找并定位web页面中的元素。

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

Byname():通过元素的name属性进行查找

………

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

 Watin对常用页面元素的操作

<A>元素

 

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

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

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

ie.Link(Find.Byid("baidu")).Text;//返回超链接文字

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

ie.Link(Find.Byid("baidu")).Click();//点击超链接

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

 

<input type="text">元素

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

<inputid="Text1"type="text"/>欢迎!</p>

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

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

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

 

 

<input type="button">元素

<input type="button">元素对应HTML DOM中的Button对象。表示一个按钮

<inputid="btn"type="button"/>登录</p>

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

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

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

 

 

<input type="checkbox">元素

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

<inputid="chk"type="checkbox"/>勾选</p>

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

Ie.CheckBox (Find.Byid("chk")).Text;//返回选择框的文字

ie.CheckBox (Find.Byid("chk")).Click();//点击选择框

ie.CheckBox (Find.ById("chk")).Checked =true;//设置Checkbox的勾选状态

 

<area>元素

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

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

<mapname="Map"id="Map">

<area shape="rect"alt="a1"coords="134,59,255,92"href="edushiMap.html" />

<areashape="rect"alt="a2"coords="345,122,464,160"href="edushiMap.html"/>

</map>

 

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

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

ie.Area(Find.ById("area1")).Click();//点击area区域

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

 

<Select>元素

<Select>元素对应HTML DOM中的Select对象。表示一个下拉列表

<selectid="Select1">

   <option>1</option>

   <option>2</option>

</select>

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

ie.SelectList(Find.ById("Select1")).Select(string);//返回选择框的某项

 

 

<table>元素

<table>元素对应HTML DOM中的table对象。表示一个表格

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

   <tr>

       <tdclass="style1">

           第1行第1列</td>

       <tdclass="style1">

           &nbsp;

           第1行第2列</td>

   </tr>

   <tr>

       <td>

           第2行第1列</td>

       <td>

           &nbsp;

           第2行第2列</td>

   </tr>

   </table>

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

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

 


  评论这张
 
阅读(1426)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017