51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4202|回复: 14
打印 上一主题 下一主题

[原创] SetTOProperty方法赋值index属性问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-6-25 13:15:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我们知道
1,当相同属性的对象出现多个后,一般会用index属性来区分这些对象
2.如果一个对象是唯一的,index属性值就是none

但是如果你用SetTOProperty方法去赋值对象库中一个index属性为none的对象,会发现属性可以正确赋值进去,但是无法用赋值属性后的对象来测试.
例:
有一个<删除>按钮,
在页面中有一个<删除>按钮情况下,index属性就是none
如果页面中有2个<删除>按钮,index属性就有一个是0,有一个是1
但是由于我们无法预知这个页面中是有1个还是2个,甚至可能1个<删除>都没有.

所以我就在删除前,先获得<删除>按钮的个数,然后根据这个个数,用SetTOProperty赋值index属性.用来定为我需要操作的那个删除按钮.
但现在的问题是,如果对象库中这个<删除>按钮的index属性是none,那么即使你用SetTOProperty赋值,也是无法用赋值后的对象来操作的实际对象

所以我想知道,对于这类情况,如何才能使用赋值后的对象呢.

[ 本帖最后由 onlonely 于 2009-6-29 13:04 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2009-6-25 15:37:22 | 只看该作者
可以调试下,看你用settoproperty函数后,对象库的属性是否按照你的要求加上了index属性。
至于使用的话,还是一样的。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2009-6-25 16:24:58 | 只看该作者
手动添加对象库中的index属性添加成"0"
还有就是既然对象是唯一的也就没有必要去赋值index了
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2009-6-26 11:45:53 | 只看该作者

回复 3# 的帖子

3楼的兄弟,思路就不正确喽
既然我会用SetTOProperty方法,自然是因为对象的属性会发生变化我才会用.
既然会发生变化,index属性就可能发生变化
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2009-6-29 08:51:34 | 只看该作者
无人知晓???
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2009-6-29 12:41:52 | 只看该作者
你确认index的属性是none吗?
你要用none来判断什么,不防可以说说,扩展一下思路?
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2009-6-29 13:06:09 | 只看该作者

回复 6# 的帖子

对象库中的,index属性的确是none.
并且如果对象库中的index属性是一个非none的数值,这个现象就不会存在.
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2009-6-29 14:23:41 | 只看该作者
楼主...既然你很明确的知道对象可能存在多个,那么当你添加对象库的时候,就要将这个对象的index初始化为"0",维护对象库是测试工作之一,你如果使对象库的index是none,那样用SetTOProperty当然没有用了..所以应该手工添加index
回复 支持 反对

使用道具 举报

  • TA的每日心情
    难过
    2015-9-21 13:50
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]测试排长

    9#
    发表于 2009-6-29 18:05:00 | 只看该作者
    首先:没这样处理过对象...

    有问题咨询楼主:
    【所以我就在删除前,先获得<删除>按钮的个数,然后根据这个个数,用SetTOProperty赋值index属性.用来定为我需要操作的那个删除按钮.】
    <<<1、你给某个具体的<删除>按钮赋值index属性时,如何找到这个按钮的,还是通过原来的index属性?
       2、赋值完index属性也是在run-time中可以使用的吧

    3、楼主这样给对象赋值index属性的目的....,是对多个同类型同名的对象自定义?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2009-6-30 08:48:19 | 只看该作者

    回复 9# 的帖子

    哎!恐怕是没人遇到这个情况了.

    情况出现原因是这样的,
    假如有一个系统,有好友功能,那么在最初肯定是没有好友的,所以没有删除.
    当我录制<添加一个好友>,然后<删除一个好友>.这个时候录制下来的对象库中的<删除>按钮就肯定是index属性为none了.如果这点不知道的你可以先离开了.
    然而录制和回放的情况是会发生变化的,当我添加了多个好友后,那么<删除>这个按钮就没有任何一个按钮的index属性是none了.
    自然就需要用SetTOProperty赋值这个动态的index,首先取得好友个数,删除最后一个,自然index就是好友个数-1
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2015-9-21 13:50
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]测试排长

    11#
    发表于 2009-6-30 13:48:20 | 只看该作者

    回复 10# 的帖子

    总结下:1、1个删除按钮,index属性为none
                    2、多个删除按钮,index属性值不为none,且可以通过SetTOProperty赋值

    我在想可不可以通过childobjects来做?
    1、通过childobjects可以得出删除按钮的个数,由此判断删除按钮存不存在;
    2、如果存在多个删除按钮,那么这样objs(objs.count-1).click,是否是点击了最后一个删除按钮?

    没有实践过....
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
     楼主| 发表于 2009-7-1 09:04:03 | 只看该作者

    回复 11# 的帖子

    你的方法,的确是可行的,
    不过感觉绕了好多圈圈....

    经过几天实验,我感觉,
    index属性为none的时候,赋值后确实不能使用.可是你用GetTOProperty取出来的结果却是正确的.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2009-7-1 22:06:27 | 只看该作者
    如果这些删除按钮是在一个 WebTable里的话,直接用WebTable的 ChildItem()来做会更简单,当然不知道楼主具体系统是什么样子的,如果有截图就更好了,大家研究研究
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
     楼主| 发表于 2009-7-8 20:15:02 | 只看该作者

    回复 11# 的帖子

    今天再次回过头来看,11楼的方法还是不错的。

    至少对于QTP能正确识别的对象是没问题的。
    只是对于像webelement类型对象就无能为力了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2010-4-27 10:26:08 | 只看该作者
    今天碰巧也遇到了这个问题,谢谢大家的回复。
    对楼主的第二点可以做些调整,如果一个对象是唯一的,index属性值就是none,但也可以是index=0.如果你确定不需要使用多个同类型的对象,那么对象库中的属性是可以默认为index=none.而当你确定需要使用index属性的时候,就需要你将其设置为0,在这种情况下就可以通过SetTOProperty方法去动态调整对象的描述。
    这其实和其他属性是一样的,比如对于Link对象,如果你在对象库中仅指定了属性html tag为A,然后用SetTOProperty属性去试图添加属性text,最后会导致对象无法识别是一样的道理。只有在对象库中留下你要修改的属性的位置的前提下SetTOProperty才可以生效,有点像使用前你需要声明的感觉。至于楼主未声明就使用而不会报错,那就要和HP好好讨论一下了。
    8楼的回复比较清楚。
    至于对于楼主说到的index=-1的情况是可以用index=0 + object.exist的方法来判断。
    试想如果非index情况(即index=none),如果没有这个对象你也势必要通过exist方法来判断了。

    [ 本帖最后由 RayTM 于 2010-4-27 10:39 编辑 ]
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-25 12:31 , Processed in 0.073633 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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