J'ai vu un autre article lié à un rapporteur qui explique comment attendre qu'un élément devienne visible. Cependant, récemment, j'ai rencontré un cas d'utilisation opposé. Je voulais attendre un élément jusqu'à ce qu'il devienne invisible. Depuis je ne pouvais rien trouver de spécifique à ce sujet. Je suis allé de l'avant et suis venu avec une solution.
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
});
j'espère que ça aide. toute suggestion est la bienvenue.
Merci,
Utilisation de l'élémentexplorer ( https://github.com/angular/protractor/blob/master/docs/debugging.md ) J'ai examiné l'objet rapporteur et trouvé une réponse qui fonctionne à merveille pour moi:
var el = element(by.id('visibleElementId'));
browser.driver.wait(protractor.until.elementIsNotVisible(el));
De @Machtyn Cela devrait être la bonne réponse:
var EC=protractor.ExpectedConditions; browser.wait(EC.not(EC.presenceOf(el)), someTimeoutInMilli);
Aucune des solutions ne fonctionne pour moi. S'il vous plaît jeter un oeil à code ci-dessous:
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);
});
});