QTP中的WebTable中的GetRowWithCellText方法改进

上一篇 / 下一篇  2010-06-01 16:43:46 / 个人分类:QTP

QTP中自带的GetRowWithCellText方法是用来返回表格中出现的第一个匹配字符串值的行的方法。

很明显,这个方法只能寻找到第一个结果,而如果表格中有多个匹配的行,这个方法就行不通了。

好在这个方法中有几个OPTIONAL的参数

GetRowWithCellText(Text, [Column], [StartFromRow])

很重要的是第三个参数,StartFromRow。这个参数的存在使得我们可以自己写一个函数,比如叫做GetAllRowsWithCellText,用来返回所有匹配的行。

方法的主要思路是这样,当寻找到第一个匹配的时,继续寻找,并把StartFromRow设为当前行的下一行,直到最后一行。最后返回一个DICTIONARY值,可以通过键值对它访问。

其中还碰到一个问题,就是怎样忽略第二个可选参数,方法是直接给个0就好了,不过引用类型估计要用EMPTY。

代码如下:

  1. Function GetAllRowsWithCellText(webTable, text)  
  2. Dim rowcount,row,startrow,j,allrows  
  3. rowcount = webTable.RowCount  
  4. Set allrows = CreateObject("Scripting.Dictionary")  
  5. row = -1  
  6. startrow=0  
  7. j = 0  
  8. Do Until startrow=rowcount+1  
  9.     row =  webTable.GetRowWithCellText(text,0,startrow)  
  10.     If row =-1 Then       
  11.         Exit Do  
  12.     else  
  13.         allrows.Add j,row   
  14.         j = j+1  
  15.         startrow = row +1  
  16.     End If  
  17. Loop  
  18. Set GetAllRowsWithCellText = allrows  
  19. End Function

TAG:

 

评分:0

我来说两句

Open Toolbar