Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Tabbed browsing: Unable to handle child tabs
#1
Not Solved
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
Reply
#2
Not Solved
watch out the creation time, may be it is causing the issue. try descriptive when you use your browser object.

Reply
#3
Not Solved
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
Reply
#4
Not Solved
what is the error you are receiving? can you paste your lines of code as well?

Reply
#5
Not Solved
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.
Reply
#6
Not Solved
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.

Reply
#7
Not Solved
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
Reply
#8
Not Solved
How to identify multiple pages in a single browser.....?


thanks inadvance
Suman.P
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Unable to identify Child Object for a window application created using C#. ssanjeev 3 5,907 03-27-2017, 05:38 AM
Last Post: ankita
  Unable to switch between Tabs in Swf Application in QTP Vijay_bt 0 2,331 10-21-2016, 08:22 PM
Last Post: Vijay_bt
  Browser - Child objects method is very very slow prasperl 0 1,974 11-12-2014, 12:59 AM
Last Post: prasperl
  Any alternative of QC to handle Automation Scripts viks 0 1,646 04-30-2014, 10:59 AM
Last Post: viks
  Child nodes in a treeview vikas.sharma 1 4,146 09-01-2010, 01:38 PM
Last Post: basanth27

Forum Jump:


Users browsing this thread: 1 Guest(s)