51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2053|回复: 8
打印 上一主题 下一主题

[求助] 大家帮我看看这段代码吧。不知道为什么循环不了

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-11-29 17:04:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Browser("goldcity").Page("goldcity").Frame("leftFrame").Link("组件管理").Click
Browser("goldcity").Page("goldcity").Frame("leftFrame_2").Link("组件模版类型管理").Click
Dim i
For i = 1 to 5
Browser("goldcity").Page("goldcity").Frame("mainFrame").WebButton("添加组件模板类型").Click
Browser("goldcity").Page("goldcity").Frame("mainFrame_2").WebEdit("genreName").Set DataTable("name_Text", dtGlobalSheet)
        Browser("goldcity").Page("goldcity").Frame("mainFrame_2").WebEdit("remark").Set DataTable("remark_Text", dtGlobalSheet)
Browser("goldcity").Page("goldcity").Frame("mainFrame_2").WebButton("提交").Click
next
Browser("goldcity").Page("goldcity").Sync
Browser("goldcity").Close

其中name_Text remark_Text 是我设置的参数化,name_Text里面内容是第一组 ccc  第二组 bbb 第三组 ccc  remark_Text里面内容是第一组xxx 第二组eee 第三组ppp   然后循环添加参数化里面的内容
但每次运行都只能获取到第一组数据 ccc 和 xxx 获取不了其它组的数据。是什么问题呢

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-11-29 17:17:14 | 只看该作者
1. 如果设置为run on all rows, 就没有必要自己写循环
2. 如果要自己控制循环, 要对数据表进行操作

Dim iRows
iRows = DataTable.GlobalSheet.GetRowCount
For i = 1 to iRows
DataTable.GlobalSheet.SetCurrentRow(i)
...
Next
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2007-11-29 17:29:01 | 只看该作者
设置的循环变量不是你这么用的!
dim i,j
j=DataTable.GetSheet("sheetName").GetParameter("ParameterName").GetRowCount
获取你表中一共有多行 并把他做为循环的次数
for i=1 to j
       Value=datatable.GetSheet("SheetName").GetParameter("ParameterName").ValueByRow(i)
       按照当前行数i来获取表中的值
       然后在把Value赋值到对应的WebEdit对象就可以了
Next
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-11-29 17:50:22 | 只看该作者
原帖由 wu52wen 于 2007-11-29 17:29 发表
设置的循环变量不是你这么用的!
dim i,j
j=DataTable.GetSheet("sheetName").GetParameter("arameterName").GetRowCount
获取你表中一共有多行 并把他做为循环的次数
for i=1 to j
       Value=datatable.Get ...



别误导,错了哦
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2007-11-29 18:52:25 | 只看该作者
原帖由 wu52wen 于 2007-11-29 17:29 发表
设置的循环变量不是你这么用的!
dim i,j
j=DataTable.GetSheet("sheetName").GetParameter("ParameterName").GetRowCount
获取你表中一共有多行 并把他做为循环的次数
for i=1 to j
       Value=datatable.Get ...


确实有两处错误,稍微改了下,楼主可用如下代码
RowCount=DataTable.GetSheet(1).GetRowCount '获得GlobalSheet的行数
for iRow=1 to RowCount
       name_Text=datatable.GetSheet(1).GetParameter(1).ValueByRow(iRow)  '取第一个参数
       remark_Text=datatable.GetSheet(1).GetParameter(1).ValueByRow(iRow)  '取第二个参数
Next
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-11-30 09:47:19 | 只看该作者
2楼正解。。。
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2007-11-30 10:44:42 | 只看该作者
gy21st 的方法正确,但出现了新的问题。
脚本从头到尾不停循环,停不了了。要按stop才停
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2007-11-30 10:54:37 | 只看该作者

回复 7# 的帖子

不会吧,你看看iRows等于几嘛
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2007-11-30 11:26:25 | 只看该作者
8#说的对,让iRows等于当前的行数就可以,
也可以参考下边的语句,根据需要加到脚本中,这些是好像是在QTP精华中看到的,呵呵。

ExitTest -退出整个TEST。
ExitAction - 退出当前操作,无论其循环属性如何。
ExitActionIteration - 退出操作的当前循环。
ExitRun - 退出测试,无论其循环属性如何。
ExitGlobalIteration - 退出当前全局循环。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-16 18:44 , Processed in 0.071249 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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