QTP之描述性编程Descriptive Programming(一)

   通常情况下,当在录制 一个操作时,QTP 会将被操作对象 加入到对象库里 (Object Repository)。一旦对象存在于对象库
里,我们就可以在专家视图 里通过添加相关的对象方法来对该对象进行操作。我们可以通过引用层次型对象库 里的对象描述

(Object Description)来添加相应的方法。

   因为QTP 对象库 中的每个对象 都具有唯一名称所以在引用时对象名是必须需要指定的 。然后在测试运行期间QTP 在对象库
中根据这个对象的名称和父对象来查找对象
并使用为这个测试对象存储的测试对象描述 在网站或应用程序中标识该对象

   然而,我们可以发觉到,在实际使用中,情况往往并非如此简单,我们经常会遇到很多在页面上动态产生的对象,

换而言之,对象库里没有这些对象,我们也无从引用 。因此我们必须采用其他的技术来完成这类操作,这也就是我们需要讲解的

Descriptive Programming

   为了满足上面提到的动态对象的处理问题,QTP 允许用户通过将对象属性编码到测试脚本里来动态识别对象 ,这就是我们通常
意义下称为的Descriptive Programming。通过这种方式,我们可以指示QTP 不通过引用对象库和对象名来对实际对象进行操
作。

    具体操作中,我们只需要为QTP 提供对象的一组属性和值 ,这样QTP 就可以来识别相应的对象并对其进行操作。这相当
于,告诉QTP 要识别对象的一些关键特征,根据这些特征QTP 就可以一一匹配然后识别出来这个对象。
而且,更为重要的是,通过这种Descriptive Programming 的方式,还可以让QTP 识别具有某些相同属性的对象 。我们先来举
个例子来看一下:

   我们假设 当前的Windows 系统中打开了若干的Test主页面(多于一个) 现在我们要关闭所有的正在浏览Test主页面的浏览器。

 

对于上面那个例子来说,我们先看一个简单一点的情况,假设只有且仅有一个Test主页面:那么我们可以用下面的方法来
Window("Text:=Test! - Microsoft Internet Explorer").Close

 

我们可以看到语句里我们要查找的对象是Window 窗口标题为“Test! - Microsoft Internet Explorer” 然后把它关闭
具体的语法说明我们稍后为解释。但是上面的语句仅仅适合前面提到的条件“只有且仅有一个Test主页面”,如果有多个同
样的窗口就会出错,原因是通过语句可以匹配到多个对象,而QTP 不知道应该对哪个对象进行关闭动作。我们需要进一步的缩
小匹配范围:

 

Dim i
i = 0
while (Window("Text:=Test! - Microsoft Internet Explorer", "index:="&i).exist)
Window("Text:=Test! - Microsoft Internet Explorer", "index:="&i).close
i = i +1
wend

 

这里我们可以看到,对于具有相同属性的对象,我们可以通过index 参数来对其进行区别 ,第一个对象为index=0,第二个为
index=1 等等,依次类推。当然我们还可以通过CreationTime 和Location 参数来定位对象,这里就不详细叙述了。
   通过上面的例子,我们对Descriptive Programming 有一个基本的了解,希望对以后的 的学习有很好的帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值