跨越蓝天 发表于 2009-2-25 16:03:06

循环读取WebTable的值出错?

将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

跨越蓝天 发表于 2009-2-25 16:30:54

我看见过07年有人也遇到过这样的问题,但是帖子里没有解决方法。
现在还没有解决方法吗,还是遇到这种问题的很少呀

helius 发表于 2009-2-25 16:39:31

这个应该是qtp 的一个bug
你在每次循环时候都set 一下

跨越蓝天 发表于 2009-2-25 16:57:28

我在循环之前写过,重新set下,可是还是不行。报同一个错误。
我用的是QTP9.2
QTP9.5里有没有这样的问题呀

helius 发表于 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

跨越蓝天 发表于 2009-2-26 11:34:32

原帖由 helius 于 2009-2-25 19:21 发表 http://bbs.51testing.com/images/common/back.gif
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

shotstar 发表于 2009-2-27 22:42:39

原帖由 跨越蓝天 于 2009-2-26 11:34 发表 http://bbs.51testing.com/images/common/back.gif

实在是抱歉,我没有说清楚,这段代码我是在一个function里写的,就是要他可重用和可移植。如果在function里面用变量对象的话,肯定出错。除非在把
WebTableInstance.GetCellData(i, search_List_Value(m))写成Bro ...
或者你考虑一下用描述式编程呢?写成Browser("title:=" & title).Page("title:=" & title2).WebTable,不知道这样如何。
页: [1]
查看完整版本: 循环读取WebTable的值出错?