2017-11-07 1 views
0

Während des Testlaufs werden mehrere Registerkarten in Chrome geöffnet. Beim Öffnen der neuen Registerkarten möchte ich, dass UFT bis zum vollständigen Laden der Seite wartet. Ich versuche, es zu einem Standard-Warten zu machen, ohne auf ein bestimmtes Objekt zu warten.Warten auf Laden der Seite für einen beliebigen Browser

Zum Beispiel während des Laufs Chrom geöffnet, gestartet URL, klicken Sie auf einen Link, neue Registerkarte geöffnet, jetzt für die neue Seite geladen werden. Klicken Sie dann auf einen Link vom 2. Tab und warten Sie, bis die 3. Seite geladen ist.

Wie kann ich UFT zwingen, auf die zuletzt geladene Seite zu warten, wenn mehrere Registerkarten vorhanden sind?

+0

Schleife durch jeden 'Browser 'Objekt und überprüfen, dass sie geladen sind, bevor Sie weitermachen? – Dave

+0

Ja. Wie kann ich es tun? – bugfinder

Antwort

1

Dies wird warten, bis alle Seite heruntergeladen ist.

Browser().Page().Sync 

Diese für besondere Aufgabe wartet

Browser().Page().Object().Waitproperty 

Wenn Sie Eigenschaft des Objekts wollen (s) zu ändern, Schleife es, wie

Do Until WaitProperty = Argument 
    print "Wait. Progress "&Progress 
    wait 3 'wait 3 seconds 
    Progress = Progress+"." 'add a period to show progress 
    Set ObjColl = MyBrowser.ChildObjects(WObj) 
    WaitProperty = cstr(ObjColl(t).GetROProperty(Arg4)) 'get the object property 
Loop 

Um eine Schleife durch alle Seiten ein Browser:

'Get Pages count: 
Set browserObject = Description.Create 
browserObject("micclass").Value = "Browser"  
GetBrowserCount = Desktop.ChildObjects(browserObject).Count 

'loop and sync (or any other methods): 
for i = 0 to GetBrowserCount-1 
browser().page("micclass:=Page","CreationTime:="&i,"Title:=.*").Sync 
next 
1

Sie können .Sync für jeden geöffneten Browser verwenden. Sie können auch .WaitProperty "visible", "true" verwenden, um auf eine Eigenschaft eines angezeigten Objekts zu warten.

Verwandte Themen