2013-01-10 3 views
0

J'ai une application web qui peut ouvrir plusieurs fenêtres, pas de nouvelles fenêtres de navigateur, mais des fenêtres chevauchant la fenêtre principale, comme des fenêtres pop-up. À un endroit, je dois vérifier si je suis sur la fenêtre principale de l'application. Ma première idée était d'obtenir le nombre de fenêtres dans un navigateur et si c'est 0 alors je suis à la maison, mais je ne peux pas trouver une solution à la façon de compter ces objets.QTP Comment compter le nombre d'objets Window dans un navigateur

Page principale ressemble à ceci:

Browser().Page() 

Si j'ouvre une nouvelle fenêtre (pop-up), il ressemble à ceci:

Browser().Window().Page() 

Et si j'ouvre une autre de la précédente, il ressemble ceci:

Browser().Window().Window().Page() 

La question est comment puis-je obtenir le nombre d'éléments de fenêtre?

Répondre

0

Les fenêtres ouvertes étaient des fenêtres contextuelles, j'ai donc écrit une fonction qui attend qu'il n'y ait pas de popups. Probablement un peu trop compliqué, mais ça marche.

Function waitForNoWindows(ByVal vSeconds) 
    blnDone = False 
    counter = 1 
    While Not blnDone 
     Wait 1 
     If objBrowser.Window("ispopupwindow:=true").Exist(0) Then 
      blnDone = False 
     Else 
      blnDone = True 
     End If 
     counter = counter + 1 
     If counter = vSeconds Then 
      blnDone = True 
      reporter.ReportEvent micFail, "Waiting for all pop up windows to close", "Canot close all pop up windows and/or timeout reached" 
      ExitTestIteration 
     End If 
    Wend 
End Function 
Questions connexes