Micro Focus QTP (UFT) Forums
Tabbed browsing: Unable to handle child tabs - Printable Version

+- Micro Focus QTP (UFT) Forums (https://www.learnqtp.com/forums)
+-- Forum: Micro Focus UFT (earlier known as QTP) (https://www.learnqtp.com/forums/Forum-Micro-Focus-UFT-earlier-known-as-QTP)
+--- Forum: UFT / QTP Others (https://www.learnqtp.com/forums/Forum-UFT-QTP-Others)
+--- Thread: Tabbed browsing: Unable to handle child tabs (/Thread-Tabbed-browsing-Unable-to-handle-child-tabs)



Tabbed browsing: Unable to handle child tabs - HazleVillage - 08-24-2009

Hallo,

I am testing a web application explicitly making use of the tabbed browsing by generating new tabs for several child tasks. I use QTP 10.0 which supports tabbed browsing in general and after some "trial and error" cycles I am able to use this feature in principle.

BUT: In replay mode child tabs test run are not recognized if they are generated during a test step executed by QTP.

So this test (pseudo code)

If child tab (page) is not open
Open Child tab (by link on parent tab)
Do something with child tab


would fails if child tab is not open at the beginning of the test and will pass if you ensure the tab to be open before starting the test.

Maybe anybody has experienved the same problem?

Michael


RE: Tabbed browsing: Unable to handle child tabs - Saket - 08-24-2009

watch out the creation time, may be it is causing the issue. try descriptive when you use your browser object.


RE: Tabbed browsing: Unable to handle child tabs - HazleVillage - 08-24-2009

Hi Saket,

thanks for the quick response.

Creation time:
I use index as ordinal identifier instead of the creation time (this is what you meant, isn't it) but tried creation time after your comment. Unfortunately there is no change.

Descriptive approach
Even if descriptive object identification would be the solution, it would not be helpfull as all child objects of the affected tab have to be invoked in a descriptive way also, right? I would like managing my testobjects in a shared TO repository sinse they change frequently.

Michael


RE: Tabbed browsing: Unable to handle child tabs - Saket - 08-24-2009

what is the error you are receiving? can you paste your lines of code as well?


RE: Tabbed browsing: Unable to handle child tabs - HazleVillage - 08-24-2009

OK, here is the code:
Code:
Dim BrowserTab_1, BrowserTab_2

'The following assignment is just a preparation for future use
Set BrowserTab_1 = Browser("Web1")
Set BrowserTab_2 = Browser("Web2")


If Not BrowserTab_2.Page("Import").Exist Then
    Reporter.ReportEvent micWarning, "Detecting Import page", "Page not found"
    If Not BrowserTab_1.Page("Home Page").Exist Then
        Reporter.ReportEvent micFail, "Open Import Page", "Home page not found"
        ExitTest
    Else
        BrowserTab_1.Page("Columbus Home Page").Link("Import").Click
        Reporter.ReportEvent micDone, "Open Import Page", "Executed"
        Wait(120)
    End If
Else
    Reporter.ReportEvent micDone, "Detecting Import page", "Page found: "+ BrowserTab_2.Page("Import").GetROProperty("url")
End If


If Not BrowserTab_2.Page("Import").Exist  Then
    Reporter.ReportEvent micFail, "Open Import Page", "Unable to open Import page"
    ExitTest
End If
'Actions for Import-page here


So the test fails within the latest If-statement. If this conditional statement was not present, the test would fail with an "Object not visible exception" in the following actions.


RE: Tabbed browsing: Unable to handle child tabs - Saket - 08-24-2009

hey, I am still not able to understand the query... what is the use of your last If statement, you are already doing the same in the above statements, may be you can exit the test at that stage only. I just tried the code and it works perfect on my side.
Please format the code if you are posting any.. use
Code:
....your code....
. the post becomes much readable using this.


RE: Tabbed browsing: Unable to handle child tabs - HazleVillage - 08-24-2009

The purpose of checking the existance of the child ("Import") page twice is this:
The first ...Page("Import").Exist statement checks if the page is visible initially (maybe opened by a previous testrun). If not, the page will be openend explicitly.
The second ...Page("Import").Exist statement is just error handling: If the testscript is unable to open (or recognize) the page, exit test instead of runnning in an ugley exception.

Of course I could place the second within the inner Else -branch of the first conditional structure. The reason why I didn't is that I places this statement subsequently - when I realized that there could be a problem in opening the page.
Maybe I should explain the workflow of the application under test -it's a locally running web application - more detailed.

- Initially there is a home page providing access to several functionalities of the application, e.g. the "Import" functionality
- By clicking on the desired link, a new tab will be opened showing the web page of the corresponding functionality (e.g. "Import")
- In this case the browser contains two tabs: One for the homepage, one for the child page
- When recording QTP identifies both elements on the home page and the child page
- When running the test starting with the homepage (no child page opened) the "Import" link is clicked and the child page opened. But then QTP is unable to recognize the child page
- If you start the test with the child page already opened (regardless if it is opened by a previous testrun or manually), the test passes

Michael


RE: Tabbed browsing: Unable to handle child tabs - sumanpasupula - 03-22-2011

How to identify multiple pages in a single browser.....?


thanks inadvance
Suman.P