ice1216 发表于 2010-6-9 10:51:19

QTP9.2 Data Table参数的问题

前段时间用QTP测试一个项目,其中在两个字段中加个FOR循环,并且其中一个字段参数化。但是发现有的时候,列中的参数都执行完毕了,可是还在继续FOR循环,并且输入的都是空值。开始以为是 FOR循环的问题,但问题并不在这里。昨天又试了一些数据,发现问题竟然出现在Data Table中。
Dim i,j
j=Datatable.GetRowCount
For i=1to j
      Datatable.SetCurrentRow(i)
      
Browser("XXXX").Page("XXX").Frame("mainFrame_detail").WebEdit("WebEdit_2").Set DataTable("test", dtGlobalSheet)
Browser("XXXX").Page("XXX").Frame("mainFrame_detail").WebButton("确认").Click
Next

目前的问题:
1、假设我对字段A进行参数化,有5个参数值,运行OK。然后我更换参数,只有3个参数值,运行结果为:
   a)3个参数顺利输入;
   b)3个参数输入后,没有跳出FOR循环,而是输入空值,点击确认;再输入空值,点击确认。然后跳出FOR循环
   ==》所以我的疑问是:为什么要再走两次空值的循环?(这个我已经验证过了,加入我第一次参数10个值,第二次参数3个,那么FOR循环时就会出现7次的输入空值)
2、Data Table中,在没有对第一行输入值的情况下,就不能对后面的行添加值?
   如下图,之前我在test里参数了16个值,然后我只能对17行输入值,无法在18行输入。这是QTP限制的?

今天有雾 发表于 2010-6-9 11:10:45

你的第一个问题的原因,是你虽然清白的数据,但是最好能删除一下下面的空行,因为datatable认为你存在数据的

你的第二个问题应该与当前的这段脚本没有关系吧,一个是读取,一个是写入datatable呀

[ 本帖最后由 今天有雾 于 2010-6-9 11:12 编辑 ]

hanjj 发表于 2010-6-9 11:33:04

在取单元格数据的时候判断是否是空值,如果空值跳出循环

ice1216 发表于 2010-6-9 13:53:07

回复 2# 的帖子

1、如何删除下面的空行呢?
2、第二个问题是和脚本没关系,我就是问问是不是QTP就的这样设计的,还是我的版本有问题

ice1216 发表于 2010-6-9 14:23:39

回复 3# 的帖子

多谢,这个办法可行!

yahuu 发表于 2010-6-9 15:42:12

和excel中使用 ActiveSheet.UsedRange.Rows.Count 是一个意思,你把数据删除了,但是它会认为你在里面放了一个空白
你如果把之前写过数据的行删除,就不会有这个问题了
当然,3楼这种方法是一定要做的,这个才是好习惯。

ice1216 发表于 2010-6-10 14:21:27

求具体删除空白行方法……

今天有雾 发表于 2010-6-10 17:01:45

你怎么删除,就是选中那几行空行后,点击del键就可以了,不知道你是不是这个问题了

今天有雾 发表于 2010-6-10 17:02:31

第二个问题跟QTP没有关系,你可以使用程序实现的,具体的例子可以从help帮助文档中寻找

yahuu 发表于 2010-6-11 16:11:22

删除空行用CTRL+K或者用CTRL+X

Cara.Gao 发表于 2010-6-18 14:39:25

回复第2个问题:
据我研究QTP帮助文档所知,第2个问题确是QTP设计就是这样的。
页: [1]
查看完整版本: QTP9.2 Data Table参数的问题