51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3069|回复: 15
打印 上一主题 下一主题

[原创] 如何动态将对象加载到对象库(急)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-5-14 13:16:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Browser("Firewall_2").Page("Firewall").Frame("data").WebCheckBox("cdel_check").Set "OFF"
Browser("Firewall_2").Page("Firewall").Frame("data").WebCheckBox("cdel_check_2").Set "OFF"
Browser("Firewall_2").Page("Firewall").Frame("data").WebCheckBox("cdel_check_3").Set "OFF"

录制的时候,将对象cdel_check_3等都录制到对象库中了,但是我用了个for循环:
For i=2 to RowN-1
        Cdel = "cdel_check"+"_"+cstr(i)
        If  Browser("Firewall").Page("Firewall").Frame("data").WebCheckBox(Cdel).Object.checked Then
         Equal = Equal+1        
        End If
Next
我在页面又添加了两个对象cdel_check_4、5
其中当Cdel=cdel_check_4、5或更多的时候,这时这些对象并没有加载到对象库中,当跑循环的时候就会出现错误,
大家有没有什么好办法,让QTP自动检查页面的对象动态加载到对象库中呀?谢谢了
非常感谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-5-14 14:32:18 | 只看该作者
你这根本不是添加对象到对象库啊,更改的这个对象的名字又有什么用呢,呵呵

象这样的问题用描述性变成就很好解决了,获取出界面上所有WebCheckBox对象,逐个进行操作就OK了
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2008-5-14 14:38:31 | 只看该作者
兄弟,怎么获取呀,谢谢了,告诉一下
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2008-5-14 14:56:10 | 只看该作者
childobjects方法,QTP帮助里描述的很清楚的
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-5-14 16:41:43 | 只看该作者
对于这种动态的对象
我觉得用描述性对象更好
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2008-5-14 17:14:47 | 只看该作者
我这段程序如何用描述性编程呢,谢谢给个回复,写一下
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2008-5-14 17:24:33 | 只看该作者
Dim oWebCheckBox
Set oWebCheckBox= Description.Create()
oWebCheckBox("micclass").value = "WebCheckBox"
Set ObjWebCheckBox = Browser("Firewall_2").Page("Firewall").Frame("data").ChildObjects(oWebCheckBox)
NumberOfoWebCheckBox = ObjoWebCheckBox.count
for i = 0 to NumberOfoWebCheckBox  - 1
    ObjWebCheckBox(i).set "ON"
next
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2008-5-14 18:24:03 | 只看该作者
兄弟,我就想用WebCheckBox("cdel_check_3")的形式表示,如何表示呢,"cdel_check_3"这个部分用变量表示
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2008-5-14 18:38:56 | 只看该作者
LS的问题类同如何让兔子吃肉~~

解决该问题的方法有很多,上面也有人提到一些了,比如参数化对象属性值(或描述性编程)、ChildObjects方法等等

要按照你的意愿来实现也可以,表示的方式你自己也都已经写出来了,但同时必须要事先将所有的对象都手动添加到对象库中。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    10#
    发表于 2008-5-15 23:51:10 | 只看该作者
    QTP没有自动检查页面的对象动态加载到对象库中的功能,因此需要你先把需要操作的对象添加到对象库里面去。否则,就使用描述性编程,让 QTP 临时去找 需要操作的对象了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2008-5-16 09:51:55 | 只看该作者
    QTP只有静态(事先录制好)的加载对象,没有动态的加载,这个想法基本不能实现。
    不过,可以用描述性编程试试。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2008-5-30 17:38:12 | 只看该作者
    cdel_check_2, cdel_check_3, 如果换成这样的形式怎么办?
    cdel_check[0].hour, cdel_check[1].hour,其中是每次会递增的
    用F7的办法ms不行,或者要做怎么样的调整呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2008-5-30 17:43:53 | 只看该作者
    搞定啦,呵呵~~一发帖就有灵感了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2008-5-30 22:57:17 | 只看该作者
    楼主的问题是应该对HP提的,不该问大家,呵呵

    用Description、ChildObjects
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2008-5-31 16:07:21 | 只看该作者
    原帖由 zte_boy 于 2008-5-14 17:24 发表
    Dim oWebCheckBox
    Set oWebCheckBox= Description.Create()
    oWebCheckBox("micclass").value = "WebCheckBox"
    Set ObjWebCheckBox = Browser("Firewall_2").Page("Firewall").Frame("data").ChildObjects(oWebChe ...


    有个地方不明白,为什么你自己定义的对象oWebCheckBox就等于Browser("Firewall_2").Page("Firewall").Frame("data")上的对象呢?
    如果还有其他的这个类型的对象,怎么办?还是一样写吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2008-6-3 10:56:07 | 只看该作者
    建议不要用ChildObjects
    Ajax异步刷新会给ChildObjects带来麻烦
    用index更好
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-11 17:24 , Processed in 0.078922 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表