51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4560|回复: 12
打印 上一主题 下一主题

[Robot] 求教:listbox中循环删除各个item遇到困难

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2005-7-4 17:29:13 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求教:
我在执行完一些操作后需要做清理操作。就是把添加了的规则从listbox中逐一删除。我尝试的方法是获取listbox的length属性,然后通过index循环选中各个item ,执行删除操作。如下

Window SetContext, "WindowTag=WEBBrowser", ""
Browser SetFrame,"Type=HTMLFrame;HTMLId=admin_main",""
    Browser NewPage,"HTMLTitle=无标题文档",""
    ListBox Click, "Type=ListBox;Name=rule_name", "index=i"(**)
    Browser NewPage,"HTMLTitle=无标题文档",""
    PushButton Click, "Type=PushButton;Name=Submit_delete"

上面的代码在执行到(**)行的时候就出现了错误。我查了,listbox中是可以通过index来标示各个item的。不知道为什么这里不行。所以想请教一下,这个地方是不能用index来标示各个item吗?那怎么将listbox中的各个item逐一删除呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

13#
发表于 2005-9-2 21:21:58 | 只看该作者
listbox中,不能通过index属性定位的!
就和datagrid中不能通过row和column一样!
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2005-7-11 19:26:22 | 只看该作者
看不到具体的列子我实在是不知道怎么帮你,恕我愚昧,不好意思!
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2005-7-8 09:43:35 | 只看该作者
问题还没解决。
下面再把我的问题纯粹化一点。我想通过index标示listbox的各个条目,点击不同的条目,而不是通过text。因此我对录制的脚本修改了。

录制脚本的结果是
ListBox click, "Type=ListBox;Name=rule_name", "Text=group“
为了使得在这个Item的Text属性变化的情况下仍可以找到并删除,我尝试使用Index来识别这个item。将语句改成如下的语句:
ListBox click, "Type=ListBox;Name=rule_name", "Index=1“

但是只是这样一个点击动作也不可实现。我希望避开text标示方式来选择各个条目。有什么方法呢?
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2005-7-6 09:00:16 | 只看该作者
我想了想,你那个item不可能在前台删的吧?应该是后台吧,如果是后台的话就不会出现每删一个下面的item上移的情况了呀,后台的话所有的item组成一个列表,然后从列表里删除item,试着获取每个item的table值然后再找规律,试试看吧,祝你成功!!
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2005-7-5 18:54:13 | 只看该作者
谢谢你的建议。我之所以只用index=1,是因为每次删除一个之后,下面的item上移,所有其他的item的Index都会改变。因此每次都删除第一个就可以了。
但是这不是问题的所在。假如说我们不是循环删除,而只是删除Index=1的那一个Item。录制脚本的结果是
ListBox click, "Type=ListBox;Name=rule_name", "Text=group“
为了使得在这个Item的Text属性变化的情况下仍可以找到并删除,我尝试使用Index来识别这个item。将语句改成如下的语句:
ListBox click, "Type=ListBox;Name=rule_name", "Index=1“
但是脚本运行到此就会出错。因此我认为不应该是循环的问题。而只是这一个语句的问题。
这个困难很棘手。期待帮助。
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2005-7-5 15:21:58 | 只看该作者
"index=1",你就只能删掉这个item啊,试着把改成“index=”&i  (dim i as integer)
然后试着用inspector这个工具抓捕到你要删的第一个item的index等于多少,把这个值复给i,再在inspector里找出每个item的index相差多少,加上语句i=i+.. 加号后面是那个index相差的数值
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2005-7-5 14:23:27 | 只看该作者
不好意思,忘了改了。把上面的if语句改称while,后面的endif改称wend就好了。但是listbox的那个问题好像没解决
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2005-7-5 11:49:07 | 只看该作者
你的循环语句呢??
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2005-7-5 11:25:23 | 只看该作者
下面是这一部分的代码,在(***)这一行出现错误,can't perform the action.
请指教。

Browser SetFrame,"Type=HTMLFrame;HTMLId=admin_main",""
   
    Window SetTestContext, "WindowTag=WEBBrowser", ""
    Browser SetFrame,"Type=HTMLFrame;HTMLId=admin_main",""
    'Browser NewPage,"HTMLTitle=无标题文档",""   
   
    Window SetTestContext, "WindowTag=WEBBrowser", ""
    Browser SetFrame,"Type=HTMLFrame;HTMLId=admin_main",""   
    result=sqagetproperty("Type=HTMLFrame;Name=admin_main;\;Type=ListBox;Name=rule_name","length",rulenum)
    sqaconsolewrite str$(result)
    sqaconsolewrite str$(rulenum)
    if rulenum<>0 then
    Window SetContext, "WindowTag=WEBBrowser", ""
    Browser SetFrame,"Type=HTMLFrame;HTMLId=admin_main",""

    ListBox click, "Type=ListBox;Name=rule_name", "Index=1"(***)
   
    PushButton Click, "Type=PushButton;Name=Submit_delete"
   
    Window SetContext, "Caption=Microsoft Internet Explorer", ""
    PushButton Click, "Text=确定"
   
    Window SetContext, "WindowTag=WEBBrowser", ""
    Browser SetFrame,"Type=HTMLFrame;HTMLId=admin_main",""
    Browser NewPage,"HTMLTitle=操作成功",""
    HTMLLink Click, "Type=HTMLLink;HTMLText=返回", ""

Window SetTestContext, "WindowTag=WEBBrowser", ""
    Browser SetFrame,"Type=HTMLFrame;HTMLId=admin_main",""   
    result=sqagetproperty("Type=HTMLFrame;Name=admin_main;\;Type=ListBox;Name=rule_name","length",rulenum)
  end if
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2005-7-5 11:02:22 | 只看该作者
把你全部的代码列出来看看
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2005-7-5 09:21:47 | 只看该作者
我尝试了通过SQAGetproperty()获得listbox的length属性。也成功获得。但是问题似乎不在这里。因为我试了
ListBox Click, "Type=ListBox;Name=rule_name", "index=1“这样的操作都无法进行。运行日志给出的结果是can't perform the action。我不知道对listbox的动作为什么不能通过index=1来完成呢?
请指教。
回复 支持 反对

使用道具 举报

该用户从未签到

2#
发表于 2005-7-5 08:39:02 | 只看该作者
获取listbox的length属性用SQAGetPropety这个函数试试
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-14 11:21 , Processed in 0.087892 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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