Useful Web Table Functions

Following are functions that may be useful when working on Web Tables.

' ******************************** Function Library *********************************

' Registering both functions

RegisterUserFunc "WebTable", "ObjectsByMicClass", "ObjectsByMicClass"

RegisterUserFunc "WebTable", "ItemByKeyColumn", "ItemByKeyColumn"

' Function: ObjectsByMicClass

' Description: Returns a collection of objects. All the objects in a

' WebTable that have the specified MicClass

' Return Value: A collection of objects

' Arguments:

' Obj - Test Object (WebTable)

' micClass - The micClass of the objects to retrieve

'---------------------------------------------------------------------------------------------------------

Function ObjectsByMicClass(Obj, micClass)

Set Table = Obj

' Create a collection object to hold the items

Set objCollection = CreateObject("Scripting.Dictionary")

' Go over all the cells in the table, and look for objects with the specified micClass

For row=1 to Table.RowCount

ColumnCount=Table.ColumnCount(row)

For col=1 to ColumnCount

For ItemIndex=0 to Table.ChildItemCount(row, col, micClass)-1

Set childItem=Nothing

Set childItem = Table.ChildItem(row, col, micClass, ItemIndex)

If Not childItem is Nothing Then

' If the cell contains a micClass object, add it to the collection

ItemKey = objCollection.Count + 1

objCollection.Add ItemKey, childItem

End if

Next

Next

Next

Set ObjectsbyMicClass = objCollection

End Function

' Function: ItemByKeyColumn

' Description: Returns an item from a column, based on the value of a

' key column

' Return Value: Object

' Arguments:

' Obj - Test Object (WebTable)

' KeyColumnIndex - Index of the KeyColumn

' KeyColumnValue - Value to search for in the key column

' KeyItemIndex - Index of the value in the key column (if there is

' more than one). If 0, the first item will be used.

' TargetColumnIndex - Column from which to retrieve the target item

' micClass - The micClass of the target item

' TargetItemIndex - Index of the target item to retrieve (if there is

' more than one). If 0, the first item will be used.

' ----------------------------------------------------------------------------------------------------

Function ItemByKeyColumn(Obj, KeyColumnIndex, KeyColumnValue, KeyItemIndex, TargetColumnIndex, micClass, TargetItemIndex)

Table = Obj

rowCount = Table.RowCount

' If TargetItemIndex was not specified, use 1 as default

If TargetItemIndex < 1 Then

TargetItemIndex = 1

End If

' If KeyColumnIndex was not specified, use 1 as default

If KeyItemIndex < 1 Then

KeyItemIndex = 1

End If

' Look for KeyColumnValue in the key column to determine from which

' row to retrieve the target item

Row = 0

foundIndex = 0

While Row <= RowCount And foundIndex < KeyItemIndex

Row = Row + 1

CellData = Table.GetCellData(Row, KeyColumnIndex)

If CellData = KeyColumnValue Then

foundIndex = foundIndex + 1

End If

Wend

If foundIndex < KeyItemIndex Then

Exit Function

End If

' Now that we know the row, retrieve the item (according to its micClass)

' from the target column.

ChildItemsCount = Table.ChildItemCount(Row, TargetColumnIndex, micClass)

If ChildItemsCount > =1 And ChildItemsCount >= TargetItemIndex Then

Set GetItemByKeyColumn = Table.ChildItem(Row, TargetColumnIndex, micClass, TargetItemIndex-1)

End If

End Function

' ******************* Examples that use these functions ******************************

' Using the ItemByKeyColumn function

Set obj = Browser("Table with objects").Page("Itenerary: Mercury Tours").WebTable("Acapulco to Zurich").ItemByKeyColumn(1,"FLIGHT",2,3,"WebElement",1)

msgbox obj.GetROProperty("innerhtml")

' Using the ObjectsByMicClass function

Set collection = Browser("Browser").Page("Page").WebTable("Table").ObjectsByMicClass("WebCheckBox")

For i=1 to collection.count

If collection(i).GetROProperty("checked") Then

collection(i).Set "OFF"

Else

collection(i).Set "ON"

End If

Next

3 comments:

Bhagawati Manukonda said...

Thanks this was very useful for me.

Bhagawati
http://bhagawati-bugs.blogspot.com

Unknown said...

Thanks, Really helpfull for all concept of webtable in mine project..great Work

Unknown said...

Thanks Really great work on Web Table..