2014-10-16 31 views
21

Ich habe andere Winkelmesser gesehen, in denen erwähnt wurde, wie man darauf wartet, dass ein Element sichtbar wird. Vor kurzem stieß ich jedoch auf einen umgekehrten Anwendungsfall. Ich wollte auf ein Element warten, bis es unsichtbar wird. Da konnte ich nichts Bestimmtes darüber finden. Ich ging voran und kam zu einer Lösung.Winkelmesser: warten, bis das Element unsichtbar/versteckt wird

var ptor = protractor.getInstance(); 
    ptor.wait(function() { 

     return element(by.css('#my-css-here')).isDisplayed().then(function(isVisible){ 
      console.log('is visible :' + isVisible); 
      return !isVisible; 
     }); 

    }, 12000).then(function(){ 
     //do whatever you want 
}); 

hoffentlich hilft es. Jeder Vorschlag ist willkommen.

Danke,

Antwort

16

die elementexplorer Verwendung (https://github.com/angular/protractor/blob/master/docs/debugging.md) I am Transporteur Objekt sah und fand eine Antwort, die wunderbar für mich funktioniert:

var el = element(by.id('visibleElementId')); 
browser.driver.wait(protractor.until.elementIsNotVisible(el)); 
+1

Danke, das funktioniert und es ist prägnant. – vichsu

+0

Allerdings stieß ich auf ein anderes Problem, ich werde eine andere Frage stellen, die damit verbunden ist. – vichsu

+0

Hier ist dieser Beitrag. http://stackoverflow.com/questions/28422011/protractor-how-to-wait-for-when-an-element-is-removed-from-dom – vichsu

6

Von @Machtyn Dies ist das sein sollte richtige Antwort: var EC=protractor.ExpectedConditions; browser.wait(EC.not(EC.presenceOf(el)), someTimeoutInMilli);

+0

ExpectedConditions ist der richtige Weg, es zu tun. –

0

Keine der Lösung funktioniert für mich. Bitte schauen Sie sich folgenden Code an:

var protractor = require('protractor'); 

describe('Testing', function() { 
it('Should show the settings button', function() { 
    var EC = protractor.ExpectedConditions; 
    var settings = $('.settings'); 
    var isSettingVisible = EC.visibilityOf(settings); 

    browser.get('http://localhost:8080/#/edomonitor'); 
     console.log("--------------------welcome 1-------------------"); 

    protractor.browser.wait(isSettingVisible, 10000, "Searching for settings").then(() => { 
     console.log("waiting complete"); 
    }, (error) => { 
     console.log(error); 
    }) 
    expect(2).toEqual(2); 
}); 
});