QTP对象识别技术


'****************************************************************************************
'名称:WebTable_FindCellByText
'访问类型:公共
'功能:在WebTable对象中查找特定文本的单元格所在位置

'输入参数:
' objWebTable(隐式) 宿主页面表格,即单元格载体
' sCellText 特定文本,即待查找文本
'返回值:
' retCellRow 单元格所在行
' retCellColumn 单元格所在列
' WebTable_FindCellByText True找到;False未找到
'示例:
' Set objTable = Browser("ABC").Page("ABC").Table("ABC")
' objTalbe.WebTable_FindCellByText("待查找字符串",retCellRow,retCellColumn)
'****************************************************************************************
Function WebTable_FindCellByText(objWebTable,sCellText,retCellRow,retCellColumn)
'objWebTable 为默认传递的参数,该参数与
'RegisterUserFunc "WebTable","WebTable_FindCellByText","WebTable_FindCellByText"
'配合使用,objWebTable代表的就是WebTable对象,也就是调用这个方法的对象,作为默认第一个参数
Dim i
Dim j
Dim sTemp

WebTable_FindCellByText = 0

If objWebTable.Exist(5) Then
For i = 1 To objWebTable.RowCount
For j =1 To objWebTable.ColumnCount(i)
sTemp = Trim(CStr(objWebTable.GetCellData(i,j)))
If sTemp = sCellText Then
WebTable_FindCellByText = 1
retCellRow = i
retCellColumn = j
   Exit Function
  End If
Next
Next
Else
WebTable_FindCellByText = ERROR_COMM_QTP_WEB_WEBTABLE_OBJNOTEXIST
End If

End Function
'重载WebTable对象的WebTable_FindCellByText函数
RegisterUserFunc "WebTable","WebTable_FindCellByText","WebTable_FindCellByText"
'RegisterUserFunc TOClass, MethodName, FunctionName, SetAsDefault 
'TOClass:测试对象
'MethodName:需要被重载的方法
'FunctionName:封装的函数名
'SetAsDefault:是否作为测试对象的标准方法,默认为false



实例:
Dim wbRow,wbCol

Set wtbAccount =  Browser("中国农业银行-个人网上银行").Page("中国农业银行-个人网上银行").Frame("contentFrame_2").WebTable("账户查询列表")

If wtbAccount.WebTable_FindCellByText("6228480010018590116",wbRow,wbCol) Then
Set objChkBox = wtbAccount.ChildItem(wbRow,0,"WebCheckBox",0)
'注:传入的参数为wbRow和0,因为WebCheckBox对象所在列为第一列,函数查找到的是文本位置
objChkBox.set "ON"
End If

猜你喜欢

转载自trygood.iteye.com/blog/974377
QTP