51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1919|回复: 7
打印 上一主题 下一主题

[原创] 描述性编程中使用的属性一定要是Test Object Properties吗

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-7-19 12:28:05 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
我的脚本中有这么一句代码:
Browser("土豆网 - 视频 - 播客 - 每个人都是生活的导演").Page("土豆网 - 视频 - 播客 - 每个人都是生活的导演").Link("innerText:=周星星求职记").Click

当脚本运行到这里时,会报错:有多个对象匹配。检查后发现页面上确实有2个名字一样的链接,于是我又增加了一个属性,修改如下:
Browser("土豆网 - 视频 - 播客 - 每个人都是生活的导演").Page("土豆网 - 视频 - 播客 - 每个人都是生活的导演").Link("innerText:=周星星求职记", "sourceIndex:=187").Click

结果仍然报同样的错,但当我把"sourceIndex:=187"改成"index:=0"后就没报错,能正常点击那个链接了,不知什么原因,想来想去,只有一个发现,那就是sourceIndex属性是Run-time Object Properties里的,而index不是

有人也许说,那你就用index不就得了嘛,问题是我不能知道这个链接的index属性究竟是多少啊,用Object Spy查看不到的

[ 本帖最后由 gzj_06 于 2007-7-19 13:30 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

8#
发表于 2007-7-20 14:31:54 | 只看该作者
原帖由 gzj_06 于 2007-7-20 13:34 发表
明白了,谢谢,就是我这个问题不知怎么解决了,在Test Object Properties找不到另一个可以区分这两个链接的属性了,我想随机点击其中一个版块的某个链接,但不能肯定会在这个版块前出现同名链接,还是在这个版块 ...


晕,你不会循环一下,将每个对象的sourceIndex取出来判断,然后在对它进行操作?
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2007-7-20 13:34:20 | 只看该作者

回复 #6 yabest 的帖子

明白了,谢谢,就是我这个问题不知怎么解决了,在Test Object Properties找不到另一个可以区分这两个链接的属性了,我想随机点击其中一个版块的某个链接,但不能肯定会在这个版块前出现同名链接,还是在这个版块之后出现,当然也可能不出现,现在问题是情况不确定,所以我不能加index:=0来区分
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-7-20 13:06:00 | 只看该作者
原帖由 gzj_06 于 2007-7-19 12:28 发表
我的脚本中有这么一句代码:
Browser("土豆网 - 视频 - 播客 - 每个人都是生活的导演").Page("土豆网 - 视频 - 播客 - 每个人都是生活的导演").Link("innerText:=周星星求职记").Click

当脚本运行到这里时, ...


使用描述行编程和使用对象仓库是等价的,对象仓库里属性只能用Test Object Property,描述行编程里也一样只能用Test Object Property

index是附加属性,也就是说对象本身没有这个属性,你别想用Object Spy来找到它。
index表示在所有符合条件的对象中,这个对象排第几个,所以同一个对象,在不同条件范围里的对象群中,index是不一样的!

比如窗口上有20个Button,它们的Text按顺序分别是01、02、03...19、20,
那text=13的这个button,可以用index如此标识 (index是从0开始递增)

Window("Test").Button("text:=.*", "index:=12")  //所有Button里它排第13个,所以index=12
Window("Test").Button("text:=1.*", "index:=2")  //所有1开头的Button里它排第4个,所以index=3
Window("Test").Button("text:=.*3", "index:=1")  //只有03和13两个3结尾的Button,它排第2个,所以index=1
Window("Test").Button("text:=13", "index:=0") //只有1个13Button,它排第一个,所以index=0
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2007-7-20 11:38:16 | 只看该作者

回复 #4 walker1020 的帖子

就是这句代码会报错:Browser("土豆网 - 视频 - 播客 - 每个人都是生活的导演").Page("土豆网 - 视频 - 播客 - 每个人都是生活的导演").Link("Text:=迷途").Click
报的错是:有多个对象匹配。我于是又加了个属性,修改后的代码是:Browser("土豆网 - 视频 - 播客 - 每个人都是生活的导演").Page("土豆网 - 视频 - 播客 - 每个人都是生活的导演").Link("Text:=迷途","sourceIndex:=167").Click

结果还是说有多个对象与之匹配,我的问题就是我已经增加了一个属性,就是sourceIndex,并且肯定是唯一的,为什么还是不能唯一标识这个对象呢,感兴趣的朋友可以到土豆网首页录制下脚本(www.tudou.com/index.html),但要注意,今天是“迷途”这个链接在网页上有两个,明天也许就不是的了,但找一下,肯定会有两个同名的链接的,用那个链接试一下就可以了,sourceIndex属性是用Object Spy查看到的

[ 本帖最后由 gzj_06 于 2007-7-20 11:40 编辑 ]
回复 支持 反对

使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    4#
    发表于 2007-7-19 22:48:04 | 只看该作者
    不是很明白楼主的问题,建议楼主去仔细看一下帮助里面对描述性编程的说明
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
     楼主| 发表于 2007-7-19 13:29:45 | 只看该作者
    原帖由 zhuyuancan 于 2007-7-19 13:23 发表
    Link("innerText:=周星星求职记"), "sourceIndex:=187").Click
    中间怎么多了个括号
    噢,不错,那是不小心,因为代码与QTP中的不完全一样,我现在去编辑一下帖子
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2#
    发表于 2007-7-19 13:23:05 | 只看该作者
    Link("innerText:=周星星求职记"), "sourceIndex:=187").Click
    中间怎么多了个括号
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-9-22 04:32 , Processed in 0.075401 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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