Question

I am a beginner in QTP and I am working on an application where there are two different web tables displayed.

The second web table is detail description of the first web table so it displays when we select a row in the first web table. In other words, Each row in the first table is selectable and when selected corresponds to the second web table

Web table 1 contains something like below for a user


RelationShip | Name


Father | AAA


Mother | BBB


Brother | CCC


Sister | DDD


Sister2 | EEE


Web Table 2 Contains detailed information for each row in Web Table 1 as I earlier mentioned. SO for Father, the below table is reflected


Details


Name | AAA


Age | 50


Relationship | Father


and so on

Second User might/might not have brother/sister.

The problem now I am facing is retrieving data from second web table for different entity of first one since all the property of the web table are similar expect the below property

"html ID" which corresponds to - "DetailParty_randomno"

This random number is the one which defines the uniqueness of the second web table, which can be retrieved from the first web table though it isn't found in the properties section when we use the Object spy. I can see this random number when I view the source code of the page. It's displayed as value entity in the tr tag

Value entity looks like "Party_randomno"

<tr style="background-color:yellow" value="Party_1" onclick="Call peoplehighlight(&quot;Party_1&quot;)" language="vbscript">

My question is if there a way to retrieve this value for each row and then use it in identifying the second web table?

However I did try to read from second table by hard coding "html id" in webtable property to see if it's being read but it didn't work So my second question is with respect to the correctness of the below descriptive programming code. Is there something else I need to include/exclude in the WebTable property to find uniqueness.

I also did my research and found that it's useful to use index but I am not aware on how to find the index of a web table? Also the index changes for each user I am searching and hence I need to find the index of the table during run time before using it

BrowserName = Browser("micClass:=Browser").GetROProperty("name")
PageName= Browser("micClass:=Browser").Page("micClass:=Page")GetROProperty("name")
Set desc = Description.Create()
desc("html tag").Value = "tr"
Set Rows = Browser("B").Page("P").Webtable("WT").ChildObjects(desc)
RoCounter = Rows.Count-1
For valuecount = 0 To RoCounter
    id=  rows(i).Object.GetAttribute("value")
Next
'When the right ID is got, parsing it in the below for WT2 Identification
Set ObjTable = Browser("name:="&Browsername).Page("name:="& Pagename).WebTable("class:=Web_Table", "html id:=Detail"&id)

Update

I was able to get the value from the source code using Motti's code. needed to tweak a little and my descriptive programming had spaces between name and : so the objetct wasn't being recognized. It's solved now.

Was it helpful?

Solution

When looking at the description you gave to your WebTable I find it hard to see what you're trying to achieve. class in QTP is mapped to the html className property are you sure that Web_Table is correct className? Also there is (AFAIK) no class name property in QTP, if you mean the test object type then there's no need to add it since you already said that the object is a WebTable.

To answer your question, in order to add indexing you just add "index:=1" to the smart identification (or in the description if you're using the object repository), note that index is zero based so 1 is the second object that matches the description (if there are more than one, if there is only one the index is ignored).

In order to get the random number you can try something like this (untested)

Set desc = Description.Create()
desc("html tag").Value = "tr"
Set rows = Browser("B").Page("P").WebTable("T").ChildObjects(desc)
For i = 0 To rows.Count - 1
    id = rows(i).GetROProperty("value") ' Or whatever you need here
Next
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top