QTP-SetTOProperty

 

                SetTOProperty的印象一直停留在和GetTOPropertyGetROPropertyGetROProperties这几个方法差不多的认知,没有使用过,当然也就没有研究。这几天在网上看了些关于QTP的资料,又重新把SetTOProperty认识了一遍。

                相对于GetTOPerpertyGetROProperty,这两个的关系还是比较好弄明白的,前者是对象库中对象的属性,后者则是运行时对象的属性。

                比如一个WebEdit,在QTP添加对象时,其Value属性就是空,然后再给Page中的WebEdit输入一个值”a”,那么运行GetTOPerperty ”value”的值就是空,因为对象库里为空,而运行GetROProperty “value”值为”a”,因为运行时对象的Value”a”;

                下面来说SetTOProperty,其实也就是给测试对象设置属性,通常用于多个相同对象时的属性赋值,如下是我写的简单的html页面:

               

                打开后就是四个文本框,这四个文本框,从QTP识别来看,属性都相同,都是WebEdit。那么如何来区分这四个WebEdit呢,我们就可以用SetTOProperty方法。

               

                代码如下:

                Set Mydes=Description.Create()

Mydes("html tag").Value="INPUT"

 

Set oPage=Browser("Browser").Page("Page").ChildObjects(Mydes)

For i=0 to oPage.count-1

                                Browser("Browser").Page("Page").WebEdit("WebEdit").SetTOProperty "index",i

                                Browser("Browser").Page("Page").WebEdit("index:="&i).highlight

Next

这样只需要在对象库中添加一个WebEdit对象,就可以依次highlight到所有WebEdit,当然也可以依次给各个WebEdit赋值。

                就像网上提到的一个例子,一个Page下有好几个输入框,每个输入框旁边都有一个Check Button,这个Check Button的数量是未知的,有可能几十个,也有可能上百个,每个Check Button的属性都相同,那么怎么办呢,同样也可以采用SetTOProperty的方法,只需要添加一个Check Button对象在对象库中即可,代码大同小异。

                另外,我们可以对TO Set Property,那么怎么对RO Set Property呢?

显示对于WebEdit,有现成的方法可以调用,那就是WebEdit.Set;那么对于其他的一些对象呢?比如WebElement,并不支持Set方法,那么我们就可以通过给Object的属性赋值,来达到Set方法同样的效果。

                比如,如下是163邮箱的写信界面,通过Spy发现收件人栏识别为WebElement

               

                那么我们就可以采用如下方法给收件人栏赋值:

                Browser("Page").Page("Page").Frame("index").WebElement("输入对方手机号,就能给他发邮件").Object.innerText=”xxxxxxx”

                同样实现了赋值的效果,收件人显示为:

               

                恩,今天先这些,过几天继续。。。。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值