Ho un problema con cucumberjs. Non riesco a trovare un modo per garantire quell'elemento con il selettore dato è presentato in DOM. Sto usando cucumberjs con Chai. https://github.com/cucumber/cucumber-js Oggetto restituisce isPresent - non importa se l'elemento esiste o meno. Quindi la domanda è come verificare se l'elemento è presente in DOM.cetriolo-js e Chai come aspettarsi se l'elemento con un selettore dato esiste in DOM
Modifica la domanda per condividere una lezione appresa. Ho letto anche la documentazione, voglio ringraziare Nathan Thompson. isPresent() restituisce una promessa che risolverà se l'elemento è presente nella pagina.
http://angular.github.io/protractor/#/api?view=Protractor.prototype.isElementPresent
Gli esempi di codice è un po 'fuorviante. Quindi, se si vuole aspettare se elemento con una data di selezione esiste nel DOM è necessario utilizzare qualcosa di simile:
element(by.id('someId')).isPresent().then(function(isElementVisible) {
expect(isElementVisible).to.be.true;
});
O uso chai con promesse.
expect(element.isPresent()).to.eventually.be.false
Tuttavia, la parola "alla fine" sembra sgradevole. Vogliamo essere sicuri non alla fine certo. :)
Here possono essere visualizzati articolo su questa domanda nel mio blog personale.
Dove è definito il metodo 'isPresent'? CucumberJS o Chai? –
isPresent è il metodo dell'API del goniometro. –
In base alla documentazione [isPresent] (http://angular.github.io/protractor/#/api?view=ElementFinder.prototype.isPresent), verifica solo se l'elemento esiste o meno nell'albero del documento. Stai cercando di rilevare se invece l'elemento è visibile? Un elemento può essere invisibile, ma sempre "presente" nell'albero del documento. –