How to retrieve value from text node div/span/p (TestComplete)
Description
Let’s say we need to retrieve a number of megabytes from under “Lots of space” category.
First, we need to explore the GUI implementation. If we’re lucky, this text node may have a unique class or ID value. Then it becomes a one-step search as in the code example below.
However, if the text node doesn’t have distinct identification properties we have to locate it through one of parents/grandparents that can be identified reliably. Then in the context of the parent we can locate the target text and extract it.
Implementation
Dim PropNames, PropValues, IEProcess Dim objSpan1, objParent 'Before running this code example make sure Google Mail Login page is up in IE PropNames = Array("processname", "index") PropValues = Array("iexplore", 1) Set IEProcess = Sys.FindChild(PropNames, PropValues, 1, True) If Not IEProcess.Exists Then 'not found - exit End If '1 - Locating span by html ID PropNames = Array("ObjectType", "idStr") PropValues = Array("TextNode", "quota") Set objSpan1 = IEProcess.FindChild(PropNames, PropValues, 100, True) MsgBox objSpan1.contentText '2 - Locating span via parent object 'Get parent PropNames = Array("ObjectType", "tagName", "className") PropValues = Array("Panel", "div", "product-info mail") Set objParent = IEProcess.FindChild(PropNames, PropValues, 100, True) 'Get paragraph in parent PropNames = Array("tagName", "contentText") PropValues = Array("P", "*megabytes*") Set objSpan1 = objParent.FindChild(PropNames, PropValues, 100, True) 'Little parsing to retrieve the number MsgBox Mid(Left(objSpan1.contentText, InStr(objSpan1.contentText, "megabytes")-1), 5)