2014-10-16 8 views
21

Ho visto altri post relativi al goniometro che menzionano come aspettare che un elemento diventi visibile. Tuttavia, recentemente, mi sono imbattuto in un caso di utilizzo opposto. Volevo aspettare un elemento fino a quando non diventa invisibile. Dal momento che non sono riuscito a trovare nulla di specifico a riguardo. Sono andato avanti e ho trovato una soluzione.Goniometro: attendere che l'elemento diventi invisibile/nascosto

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 
}); 

speriamo che aiuti. qualsiasi suggerimento è benvenuto

Grazie,

risposta

16

Utilizzando l'elementexplorer (https://github.com/angular/protractor/blob/master/docs/debugging.md) ho guardato l'oggetto goniometro e trovato una risposta che sta lavorando meravigliosamente per me:

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

Grazie, Questo funziona ed è conciso. – vichsu

+0

Tuttavia, mi sono imbattuto in un altro problema, pubblicherò un'altra domanda correlata a questo. – vichsu

+0

ecco quel post. http://stackoverflow.com/questions/28422011/protractor-how-to-wait-for-when-an-element-is-removed-from-dom – vichsu

6

Da @Machtyn questo dovrebbe essere il risposta corretta: var EC=protractor.ExpectedConditions; browser.wait(EC.not(EC.presenceOf(el)), someTimeoutInMilli);

+0

ExpectedConditions è il modo giusto per farlo. –

0

Nessuno della soluzione funziona per me. Si prega di dare un'occhiata al codice di seguito:

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); 
}); 
}); 
Problemi correlati