51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2413|回复: 6
打印 上一主题 下一主题

[原创] 循环读取WebTable的值出错?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-2-25 16:03:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
将WebTable赋给一个变量后,第二次循环时QTP不认识它了

我把一个WebTable赋给一个变量
Set WebTableInstance=Browser("@@").Page("@@").WebTable("@@")
然后在一个Sub的For循环里使用这个变量,第一次循环正常,第二次循环就提示can't identify WebTable
如果我不用变量,直接用Browser("@@").Page("@@").WebTable("@@")的话每次循环就都可以
For m = 0 To webTableColumn.Count -1
  If Trim(WebTableInstance.GetCellData(i, search_List_Value(m))) = Trim(webTableColumn.Item(search_List_Value(m))) Then
      search = search + 1                                   
   End If
Next
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2009-2-25 16:30:54 | 只看该作者
我看见过07年有人也遇到过这样的问题,但是帖子里没有解决方法。
现在还没有解决方法吗,还是遇到这种问题的很少呀
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2009-2-25 16:39:31 | 只看该作者
这个应该是qtp 的一个bug
你在每次循环时候都set 一下
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2009-2-25 16:57:28 | 只看该作者
我在循环之前写过,重新set下,可是还是不行。报同一个错误。
我用的是QTP9.2
QTP9.5里有没有这样的问题呀
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2009-2-25 19:21:08 | 只看该作者
For m = 0 To webTableColumn.Count -1
Set WebTableInstance=Browser("@@").Page("@@").WebTable("@@")
  If Trim(WebTableInstance.GetCellData(i, search_List_Value(m))) = Trim(webTableColumn.Item(search_List_Value(m))) Then
      search = search + 1                                   
   End If
Next
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2009-2-26 11:34:32 | 只看该作者
原帖由 helius 于 2009-2-25 19:21 发表
For m = 0 To webTableColumn.Count -1
Set WebTableInstance=Browser("@@").Page("@@").WebTable("@@")
  If Trim(WebTableInstance.GetCellData(i, search_List_Value(m))) = Trim(webTableColumn.Item(search_ ...

实在是抱歉,我没有说清楚,这段代码我是在一个function里写的,就是要他可重用和可移植。如果在function里面用变量对象的话,肯定出错。除非在把
WebTableInstance.GetCellData(i, search_List_Value(m))写成Browser("@@").Page("@@").WebTable("@@").GetCellData(i, search_List_Value(m))
才不会报错,这样就不利于function的重用。
function(WebTableInstance,webTableColumn)
search_List_Value=webTableColumn.keys
For m = 0 To webTableColumn.Count -1
  If Trim(WebTableInstance.GetCellData(i, search_List_Value(m))) = Trim(webTableColumn.Item(search_List_Value(m))) Then
      search = search + 1                                   
   End If
Next
end function
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2009-2-27 22:42:39 | 只看该作者
原帖由 跨越蓝天 于 2009-2-26 11:34 发表

实在是抱歉,我没有说清楚,这段代码我是在一个function里写的,就是要他可重用和可移植。如果在function里面用变量对象的话,肯定出错。除非在把
WebTableInstance.GetCellData(i, search_List_Value(m))写成Bro ...

或者你考虑一下用描述式编程呢?写成Browser("title:=" & title).Page("title:=" & title2).WebTable,不知道这样如何。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-9-29 07:29 , Processed in 0.117420 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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