51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 5372|回复: 20
打印 上一主题 下一主题

[求助] 日期控件中有link的参数化后出现的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-1-24 11:43:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在web上面录制js的日期控件,里面有link,我对其进行了参数化,
代码:
Dim links(2),j
links(0)=27
links(1)=28
Browser(XXXXX).Page(XXXXX).WebEdit("raCityName").Click
Browser(XXXXX).Page(XXXXX).WebEdit("raCityName").Set "shanghai"
Browser(XXXXX).Page(XXXXX).Image("in4_05").FireEvent "onmouseover"
Browser(XXXXX).Page(XXXXX).Image("in4_05").Click
For j=0 to 1
  Browser(XXXXX).Page(XXXXX).Frame("CalFrame").Link("text:="&links(j)).Click
Next
Browser(XXXXX).Page(XXXXX).WebButton("查 找").Click
可是运行玩后出现下面问题:
The "[ Link ]" object's description matches more than one of the objects currently displayed in your application. Add additional properties to the object description in order to uniquely identify the object.
希望能得到帮助,在线等
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-1-24 12:09:48 | 只看该作者
你的for ...next老对那一句话循环当然 提示more then one 啦,重新修改下看看行不
  去掉for ...next 先 把
Browser(XXXXX).Page(XXXXX).Frame("CalFrame").Link("text:="&links(j)).Click
换成
Browser(XXXXX).Page(XXXXX).Frame("CalFrame").Link("text:="&links(0)).Click
试试能否成功,可以的话在用for

[ 本帖最后由 pxwcypx 于 2008-1-24 12:12 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-1-24 12:24:45 | 只看该作者
从错误信息上来看,应该是画面上有其他相同属性的Link存在,要求你添加其他关键属性来定位你使用的Link。
楼主的画面上是不是还有其他的日期控件?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2008-1-24 12:42:11 | 只看该作者

回复 2# 的帖子

不行啊,我换为Browser(XXXXX).Page(XXXXX).Frame("CalFrame").Link("text:="&links(0)).Click,还是提示这个错误
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-1-24 12:48:56 | 只看该作者
这都没通过,就像3#说的你得重新的定位你的对象,重新选择属性赋值
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2008-1-24 12:49:00 | 只看该作者

回复 3# 的帖子

这就是我录制的时间控件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2008-1-24 12:58:11 | 只看该作者
试了几个属性都不行,希望楼上能够给出具体的方法啊
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2008-1-24 13:49:34 | 只看该作者
从你贴出来的图上看,就是两个时间控件,所有的日期Link都是双份的,你看看有没有Index,QTP在发现相同属性控件的时候会给出一个Index进行区分。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2008-1-24 16:51:30 | 只看该作者
怎么选择时间控件,出现两个月份的日期列表啊?
这样话,你的对象不是唯一的。无法准确识别。
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2008-1-24 17:06:53 | 只看该作者

回复 8# 的帖子

看了一下确实有index,左边的日期index是0,右边的是1。link值是固定的时候,我在传index的参数时,脚本可以执行,可是在传link和index参数时,还是出现上面的问题。我一共写了两个脚本,希望能看下:
脚本1:
Dim a,b,links(2),
links(0)=27     
links(1)=28
a=0
Browser(XXXXX).Page(XXXXX).WebEdit("raCityName").Click
Browser(XXXXX).Page(XXXXX).WebEdit("raCityName").Set "taiyuan"
Browser(XXXXX).Page(XXXXX).Image("in4_05").FireEvent "onmouseover"
Browser(XXXXX).Page(XXXXX).Image("in4_05").Click
Browser(XXXXX).Page(XXXXX).Frame("CalFrame").Link("name:="&links(0)).SetTOProperty "index",a
Browser(XXXXX).Page(XXXXX).Frame("CalFrame").Link("name:="&links(0)).Click
Browser(XXXXX).Page(XXXXX).Frame("CalFrame").Link("name:="&links(1)).SetTOProperty "index",a
Browser(XXXXX).Page(XXXXX).Frame("CalFrame").Link("name:="&links(1)).Click

脚本2
Dim a,b,links(2),
links(0)=27     
links(1)=28
a=0
Browser(XXXXX).Page(XXXXX).WebEdit("raCityName").Click
Browser(XXXXX).Page(XXXXX).WebEdit("raCityName").Set "taiyuan"
Browser(XXXXX).Page(XXXXX).Image("in4_05").FireEvent "onmouseover"
Browser(XXXXX).Page(XXXXX).Image("in4_05").Click
a=Browser(XXXXX).Page(XXXXX).Frame("CalFrame").Link("name:="&links(0)).GetTOProperty("index")
msgbox a      '得不到a的值
for  j=0 to 1
If   a="0" Then
Browser(XXXXX).Page(XXXXX).Frame("CalFrame").Link("name:="&links(j)).Click
End If
Next
还是不能参数化?
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2008-1-24 17:17:48 | 只看该作者
Browser(XXXXX).Page(XXXXX).Frame("CalFrame").Link("name:="&links(0),"index:=0").Click '左边
Browser(XXXXX).Page(XXXXX).Frame("CalFrame").Link("name:="&links(0),"index:=1").Click '右边
Index不用在去取了,你只要知道"0"是控制左边的控件,"1"是控制右边的控件可以了。

[ 本帖最后由 jinsen 于 2008-1-25 11:02 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2008-1-24 17:31:23 | 只看该作者
楼上说的得,index是不能用get获取的,我记得帮助文档上有说明的
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2008-1-24 17:59:29 | 只看该作者
11楼正解,不过你在for循环的时候要是j的变量增加。
回复 支持 反对

使用道具 举报

该用户从未签到

14#
 楼主| 发表于 2008-1-25 10:35:27 | 只看该作者

回复 11# 的帖子

我试了一下你写的脚本,
Browser(XXXXX).Page(XXXXX).Frame("CalFrame").Link("name:="&links(0)&";index:=0").Click '左边
Browser(XXXXX).Page(XXXXX).Frame("CalFrame").Link("name:="&links(0)&";index:=1").Click '右边
有些问题,提示Failed to run the test due to an unknown error.
我又在网上搜索了一下,发现好像是Link("name:="&links(0),"index:=0").Click
但是执行时也出现这种问题,不知道怎么回事,急坏我了
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2008-1-25 11:03:44 | 只看该作者
不好意思,是我写错了。
你能不能把你改了的代码再贴一份出来看看?
回复 支持 反对

使用道具 举报

该用户从未签到

16#
 楼主| 发表于 2008-1-25 11:11:49 | 只看该作者
Dim links(2)
links(0)=25  
links(1)=26

Browser(XXXXX).Page(XXXXXX).WebEdit("raCityName").Click
Browser(XXXXX).Page(XXXXXX).WebEdit("raCityName").Set "taiyuan"
Browser(XXXXX).Page(XXXXXX).Image("in4_05").FireEvent "onmouseover"
Browser(XXXXX).Page(XXXXXX).Image("in4_05").Click
Browser(XXXXX).Page(XXXXXX).Frame("CalFrame").Link("name:="&links(0),"index:=0").Click
Browser(XXXXX).Page(XXXXXX).Frame("CalFrame").Link("name:="&links(1),"index:=1").Click
Browser(XXXXX).Page(XXXXXX).WebButton("查 找").Click


对象库中有25和26的对象。
就是这些了。
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2008-1-25 11:43:31 | 只看该作者
Browser(XXXXX).Page(XXXXXX).Frame("CalFrame").Link("name:="&links(0),"index:=0").Click
Browser(XXXXX).Page(XXXXXX).Frame("CalFrame").Link("name:="&links(1),"index:=1").Click
这两行代码你试一试,注释掉一行,看看有没有报错。
回复 支持 反对

使用道具 举报

该用户从未签到

18#
 楼主| 发表于 2008-1-25 11:53:16 | 只看该作者
还是不行的啊,注释掉任意一行还是不行
回复 支持 反对

使用道具 举报

该用户从未签到

19#
 楼主| 发表于 2008-1-25 12:10:04 | 只看该作者

回复 17# 的帖子

我用刚才16#的代码现在已经可以通过了,没有出现什么问题,原来是我有一个细节没有注意到,我把脚本中的一处代码真的用XX代替了,作为测试人员太惭愧了,很不仔细,不过很要感谢你, ,不知能否加你的msn?
回复 支持 反对

使用道具 举报

该用户从未签到

20#
发表于 2008-1-25 12:11:40 | 只看该作者
从语法上看没有问题,你把代码Save一下,看看Information里有没有错误信息。

PS:这里的数组在Dim的时候"links(2)",括号里是指最大可用下标,不是指个数。你现在的定义方法是可以存放3个对象的。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-26 09:00 , Processed in 0.078231 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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