介绍一个QTP基础框架 - SIFL
上一篇 / 下一篇 2011-02-12 17:19:34 / 个人分类:QTP
SIFL全称SoftwareInquisitionFoundationLibrary
其中包含很多QTP的基础库函数,可以称之为一个QTP的基础框架,主要库函数文件包括:
AssertLib.vbs:处理断言语句和写结果。
BrowserFunctions.vbs:扩展Browser测试对象,例如OpenNewBrowser函数用于打开一个新的IE浏览器实例。
ObjectMethods.vbs:扩展各种测试对象,例如注册到WebList的WebListItemsArray函数可以返回一个代表WebList各项元素的数组。
StringFunctions.vbs:处理字符串,例如StringIsEmpty函数用于判断给定的字符串是否为空。
Utility.vbs:工具类,siChildren函数用于获取WebElement的满足指定描述的子对象元素
WebTableMethods.vbs:扩展WebTable测试对象,例如WebTableGetRowValues函数用于返回指定行的数据。
作者主页:
http://www.softwareinquisition.com/
(注:现在好像不能访问了)
摘录WebTableMethods的函数如下:
''' <summary>
''' Returns an array containing the values from the given row
''' </summary>
''' <param name="oTable" type="WebTable">WebTable under test</param>
''' <param name="iRowNumber" type="Integer">Row number to grab</param>
''' <returns type="String()"></returns>
Public Function WebTableGetRowValues( oTable, iRowNumber)
Dim aReturn
For colNumber = 1 To oTable.ColumnCount(iRowNumber)
arrayPush aReturn, Trim(oTable.GetCellData(iRowNumber, colNumber))
Next
WebTableGetRowValues = aReturn
End Function
RegisterUserFunc "WebTable", "GetRowValues", "WebTableGetRowValues", True
''' <summary>
''' Returns the Column Number for the first occurance of sMatchString or 0 if it doesn't occur
''' </summary>
''' <param name="oTable" type="WebTable"></param>
''' <param name="sMatchString" type="String">String to match</param>
''' <returns type="Integer"></returns>
Public Function WebTableGetColumnNumber (ByRef oTable, sMatchString)
If stringContains(sMatchString, "^#\d+$") Then
WebTableGetColumnNumber = GetMatch(sMatchString, "^#(\d+)$")
Else
For rowNumber = 1 To oTable.RowCount
For colNumber = 1 To oTable.ColumnCount(rowNumber)
If StringContains(oTable.GetCellData(rowNumber, colNumber), sMatchString) Then
WebTableGetColumnNumber = colNumber
Exit Function
End If
Next
Next
WebTableGetColumnNumber = 0
End If
End Function
RegisterUserFunc "WebTable", "GetColumnNumber", "WebTableGetColumnNumber", True
''' <summary>
''' Returns the Column Index for the first occurance of sMatchString or -1 if no match
''' </summary>
''' <param name="oTable" type="WebTable"></param>
''' <param name="sMatchString" type="String">String to match</param>
''' <returns type="Integer"></returns>
Public Function WebTableGetColumnIndex(ByRef oTable, sMatchString)
WebTableGetColumnIndex = WebTableGetColumnNumber(oTable, sMatchString) - 1
End Function
RegisterUserFunc "WebTable", "GetColumnIndex", "WebTableGetColumnIndex", True
''' <summary>
''' Gets the Row index for the first occurance of sMatchString
''' </summary>
''' <param name="oTable" type="WebTable"></param>
''' <param name="sMatchString" type="String">String to match</param>
''' <returns type="Integer">returns row index or -1 if sMatchString isn't found</returns>
Public Function WebTableGetRowIndex (ByRef oTable, sMatchString)
WebTableGetRowIndex = WebTableGetRowNumber(oTable, sMatchString) - 1
End Function
RegisterUserFunc "WebTable", "GetRowIndex", "WebTableGetRowIndex", True
''' <summary>
''' Gets the Row number for the first occurance of sMatchString
''' </summary>
''' <param name="oTable" type="WebTable"></param>
''' <param name="sMatchString" type="String">String to match</param>
''' <returns type="Integer">returns row number or 0 if sMatchString isn't found</returns>
Public Function WebTableGetRowNumber (ByRef oTable, sMatchString)
If stringContains(sMatchString, "^#\d+$") Then
WebTableGetRowNumber = GetMatch(sMatchString, "^#(\d+)$")
Else
For rowNumber = 1 To oTable.RowCount
For colNumber = 1 To oTable.ColumnCount(rowNumber)
If StringContains(oTable.GetCellData(rowNumber, colNumber), sMatchString) Then
WebTableGetRowNumber = rowNumber
Exit Function
End If
Next
Next
WebTableGetRowNumber = 0
End If
End Function
RegisterUserFunc "WebTable", "GetRowNumber", "WebTableGetRowNumber", True
''' <summary>
''' Search for a string of text in the cell data of a WebTable, and return the coordinates of the cell
''' </summary>
''' <param name="oTable" type="WebTable"></param>
''' <param name="sSearch" type="String">String to match</param>
''' <returns type="String">Returns a string in the form. of "intRowNumber,intColumnNumber"</returns>
Public Function WebTableGetCellCoords (ByRef oTable, ByRef sSearch)
For rowNumber = 1 To oTable.RowCount
For ColumnNumber = 1 To oTable.ColumnCount(oTable.RowCount)
If StringContains(oTable.GetCellData(rowNumber, ColumnNumber), sSearch) Then
bFound = True
WebTableGetCellCoords = CStr(rowNumber) & "," & CStr(ColumnNumber)
Exit Function
End If
Next
Next
'Return 0 if it wasn't found
WebTableGetCellCoords = "0"
End Function
RegisterUserFunc "WebTable", "GetCellCoords", "WebTableGetCellCoords", True
''' <summary>
''' Search one column in a webtable for a string.
''' </summary>
''' <param name="oTable" type="WebTable">Table (possibly) containing sMatchString</param>
''' <param name="sColumnHeader" type="String">Column to Search</param>
''' <param name="sSearchString" type="String">Search string</param>
''' <returns type="Boolean"></returns>
Public Function WebTableColumnContains (ByRef oTable, sColumnHeader, sSearchString)
headerRowNumber = WebTableGetRowNumber(oTable, sColumnHeader)
ColumnNumber = WebTableGetColumnNumber(oTable, sColumnHeader)
WebTableColumnContains = False
For rowNumber = headerRowNumber To oTable.RowCount
If StringContains(oTable.GetCellData(rowNumber, ColumnNumber), sSearchString) Then
WebTableColumnContains = True
Exit Function
End If
Next
End Function
RegisterUserFunc "WebTable", "ColumnContains", "WebTableColumnContains", True
''' <summary>
''' Asserts if a table is sorted by specified column
''' </summary>
''' <param name="oTable" type="WebTable">Table to check</param>
''' <param name="sHeader" type="String">Column to check</param>
''' <param name="sOrder" type="String">Asserting order, ascending or descending</param>
''' <example>
''' Assert if first table on page "Legal Assistant Scan Categories" is sorted by
''' column "Scan Name" in ascending order
''' NavigateToPage "Legal Assistant Scan Categories"
''' Set Table = SelectFirstTable
''' oTable.AssertSortedByColumn "Scan Name", "Ascending"
''' <code>
''' LoginProfile "SUPER"
''' assertSetupMenuLinkExists "Eligible Populations"
''' </code>
''' </example>
''' <returns type="Boolean"></returns>
Public Function WebTableAssertSortedByColumn (ByRef oTable, sHeader, sOrder)
WebTableAssertSortedByColumn = reportStatus( WebTableVerifySortOrderInColumnAdv( oTable, sHeader, Array( "SortOrder", sOrder ) ), "AssertSortedByColumn", "Table sorted by '" & sHeader & "' ordered " & sOrder )
End Function
RegisterUserFunc "WebTable", "AssertSortedByColumn", "WebTableAssertSortedByColumn", True
''' <summary>
''' Verify oTable has correct order
''' </summary>
''' <param name="oTable" type="WebTable">Table to check</param>
''' <param name="Header" type="String">Column to check</param>
''' <returns type="Boolean"></returns>
Public Function WebTableVerifySortOrderInColumn (ByRef oTable, Header)
WebTableVerifySortOrderInColumn = WebTableVerifySortOrderInColumnAdv( oTable, Header, Null )
End Function
RegisterUserFunc "WebTable", "VerifySortOrderInColumn", "WebTableVerifySortOrderInColumn", True
''' <summary>
''' Verify oTable has correct order
''' </summary>
''' <param name="oTable" type="WebTable">Table to check</param>
''' <param name="Header" type="String">Column to check</param>
''' <param name="aOptions" type="Object()"></param>
''' <array-elements param="aOptions">
''' <element name="SortOrder" type="String" default="Ascending">Should it be sorted asecnding or descending</element>
''' <element name="SortType" type="String" default="Alphabetical">Is it supposed to be sorted alphabetically? Probably so.</element>
''' </array-elements>
''' <returns type="Boolean"></returns>
Public Function WebTableVerifySortOrderInColumnAdv (ByRef oTable, Header, aOptions)
Set ptions = GetOpts( Array ( _
"SortOrder", "Ascending", _
"SortType", "Alphabetical" _
), aOptions)
headerRowNumber = WebTableGetRowNumber (oTable, Header)
ColumnNumber = WebTableGetColumnNumber(oTable, Header)
bReturn = False
'subtract the Header row number from the row count. If there are 0 or 1 rows in the table, don't worry about sort order, just
' say it's sorted, and exit
If oTable.GetROProperty("rows") - headerRowNumber <= 1 Then
WebTableVerifySortOrderInColumnAdv = True
Exit Function
Else
rowNumber = headerRowNumber + 1 'initialize the row number to the row below the header
For iRow = rowNumber + 1 To oTable.GetROProperty("rows")
sText1 = oTable.GetCellData(iRow - 1, ColumnNumber)
sText2 = oTable.GetCellData(iRow , ColumnNumber)
'If the sort order is descending, reverse the variables
If LCase( oOptions("SortOrder") ) = "descending" Then
sTemp = sText1
sText1 = sText2
sText2 = sTemp
End If
If sText1 < sText2 Then
bReturn = True
Else
'If we've found an exception to the intended sort order, short circuit out of here
WebTableVerifySortOrderInColumnAdv = False
Exit Function
End If
Next
End If
WebTableVerifySortOrderInColumnAdv = bReturn
End Function
RegisterUserFunc "WebTable", "VerifySortOrderInColumnAdv", "WebTableVerifySortOrderInColumnAdv", True
''' <summary>
''' Determines whether a cell exists
''' </summary>
''' <param name="oTable" type="WebTable"></param>
''' <param name="iColumn" type="Integer"></param>
''' <param name="iRow" type="Integer"></param>
''' <returns type="Boolean"></returns>
Public Function WebTableCellExists( oTable, iRow, iColumn)
sCellData = oTable.GetCellData(iRow, iColumn)
WebTableCellExists = isFalse(StringContains(sCellData, "ERROR: The specified cell does not exist."))
End Function
RegisterUserFunc "WebTable", "CellExists", "WebTableCellExists", True
''' <summary>
''' Get values from specified column
''' </summary>
''' <param name="oTable" type="WebTable"></param>
''' <param name="sHeader" type="String">Column to grab</param>
''' <returns type="String()">Array of column values</returns>
Public Function WebTableGetColumnValues( oTable, sHeader )
WebTableGetColumnValues = WebTableGetColumnValuesAdv( oTable, sHeader, Null)
End Function
RegisterUserFunc "WebTable", "GetColumnValues", "WebTableGetColumnValues", True
''' <summary>
''' Get values from specified column
''' </summary>
''' <param name="oTable" type="WebTable"></param>
''' <param name="sHeader" type="String">Column to grab</param>
''' <returns type="String()">Array of column values</returns>
Public Function WebTableGetColumnValuesAdv( oTable, sHeader, aOptions )
Set ptions = getopts(Array("iFooterRows", 0), aOptions)
iFooterRows = oOptions("iFooterRows")
' For i = WebTableGetHeaderRow(oTable, sHea
TAG:
标题搜索
日历
|
|||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
1 | 2 | 3 | 4 | ||||||
5 | 6 | 7 | 8 | 9 | 10 | 11 | |||
12 | 13 | 14 | 15 | 16 | 17 | 18 | |||
19 | 20 | 21 | 22 | 23 | 24 | 25 | |||
26 | 27 | 28 | 29 | 30 | 31 |
我的存档
数据统计
- 访问量: 55015
- 日志数: 72
- 建立时间: 2011-01-31
- 更新时间: 2014-04-15