2017-02-07 3 views
0

Ich beginne auf einer nicht-eckigen Seite, klicken Sie auf eine Schaltfläche mit browser.findElement.Wie bekomme ich Winkelmesser, um nach einem Element zu suchen, bevor die Seite komplett geladen wird?

Wenn Sie auf das Element klicken, wird der Benutzer auf eine eckige Seite mit einem Drehfeld geleitet, bis die Seite vollständig geladen ist. Mit dem folgenden Code wartet der Winkelmesser darauf, dass die Seite vollständig geladen wird, bevor ich das Folgende ausführe. Ich möchte, dass er beginnt, nach dem Seitenbesetztzeichen zu suchen, sobald die erste Schaltfläche angeklickt wird, denn bis er zu diesem Code kommt, Der Spinner ist nicht mehr aktiv.

browser.wait(function(){ 
    element(by.className('page-busy-indicator')).getAttribute('class').then(function(value){ 
    console.log(value); 
    if(value.indexOf('active')>-1){ 
     return true; 
    } 
    }); 
}); 
+1

Haben Sie versucht, 'browser.ignoreSynchronization = true;' vor dem 'browser.wait()'? – finspin

+0

Ich habe ignoreSynchronization und waitForAngularEnabled überall vergeblich versucht. – jdgower

+1

'var EC = protractor.ExpectedConditions; browser.wait (EC.stalenessOf ($ ('. Page-busy-indicator')), 5000); ' – Barney

Antwort

0

Dank Finspin und Barney für ihre Kommentare, die mich in die richtige Richtung wiesen. Am Ende musste ich waitForAngularEnabled ausschalten und dann das Gegenteil von dem verwenden, was Barney erwähnt hatte (presenceOf). Entschuldigung, wenn die Frage wegen der Art, wie ich sie formuliert habe, verwirrend war. Danke noch einmal!

Beachten Sie, dass Sie eine Uhr für .page-busy-indicator.active einrichten und 5 Sekunden vor dem Zeitlimit suchen.

browser.waitForAngularEnabled(false); 
browser.wait(protractor.ExpectedConditions.presenceOf(element(by.css('.page-busy-indicator.active'))), 5000); 
Verwandte Themen