Watin Web端自动化测试

xiaoxiao2021-02-28  18

概述

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

 

HTML元素与Watin类的映射

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

51Testing软件测试网lV:y6z+wy(I-l

 

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

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>51Testing软件测试网!v1Y6lq IX

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">

            

           第1行第2列</td>

   </tr>

   <tr>

       <td>

           第2行第1列</td>

       <td>

            

           第2行第2列</td>

   </tr>

   </table>

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

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

 

转载请注明原文地址: https://www.6miu.com/read-1650241.html

最新回复(0)