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,
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));
Von @Machtyn Dies sollte die richtige Antwort sein:
var EC=protractor.ExpectedConditions; browser.wait(EC.not(EC.presenceOf(el)), someTimeoutInMilli);
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);
});
});