51Testing软件测试论坛

标题: 循环读取WebTable的值出错? [打印本页]

作者: 跨越蓝天    时间: 2009-2-25 16:03
标题: 循环读取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
我看见过07年有人也遇到过这样的问题,但是帖子里没有解决方法。
现在还没有解决方法吗,还是遇到这种问题的很少呀
作者: helius    时间: 2009-2-25 16:39
这个应该是qtp 的一个bug
你在每次循环时候都set 一下
作者: 跨越蓝天    时间: 2009-2-25 16:57
我在循环之前写过,重新set下,可是还是不行。报同一个错误。
我用的是QTP9.2
QTP9.5里有没有这样的问题呀
作者: 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_List_Value(m))) Then
      search = search + 1                                   
   End If
Next
作者: 跨越蓝天    时间: 2009-2-26 11:34
原帖由 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
作者: shotstar    时间: 2009-2-27 22:42
原帖由 跨越蓝天 于 2009-2-26 11:34 发表

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

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




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2