wake-up-neo.net

Winkelmesser: Warten Sie, bis das Element unsichtbar/verborgen ist

Ich sah einen anderen Winkelmesser-Beitrag, der erwähnte, wie man warten sollte, bis ein Element sichtbar wird. In letzter Zeit stieß ich jedoch auf einen entgegengesetzten Anwendungsfall. Ich wollte auf ein Element warten, bis es unsichtbar wird. Da konnte ich nichts Konkretes darüber finden. Ich ging weiter und fand eine Lösung.

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. 

Vielen Dank,

21
vichsu

Mit dem Elementexplorer ( https://github.com/angular/protractor/blob/master/docs/debugging.md ) habe ich mir das Winkelmesserobjekt angesehen und eine funktionierende Antwort gefunden wunderbar für mich:

var el = element(by.id('visibleElementId'));
browser.driver.wait(protractor.until.elementIsNotVisible(el));
16
Al Joslin

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

8
Daniel Bressan

Keine der Lösungen funktionierte für mich. Bitte schauen Sie sich den Code unten 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);
 });
});
0
Shivang Gupta