javascript - locators - Transportador, con isDisplayed() Obtengo NoSuchElementError: No se encontró ningún elemento utilizando el localizador
protractor tutorial español (3)
Este error es parte del comportamiento de WebDriver. Para tales casos, deberías usar isPresent() o isElementPresent
En el transportador 2.0, estoy comprobando en expect()
si se muestra un elemento. Espero algo falso, pero lo extraño es que obtengo el siguiente error:
NoSuchElementError: no se encontró ningún elemento utilizando el localizador: By.id ("userForm")
Mi código es:
describe(''closeModal'', function() {
it(''should close the alert that appears after registration.'', function(){
element(by.id(''closeAlertModalButton'')).click();
expect(element(by.id(''userForm'')).isDisplayed()).toBeFalsy();
});
});
Entiendo que recibo ese error porque el elemento ya no está en la página (es lo que quiero confirmar), pero ¿no debería obtener un error falso y no?
Si el elemento visible hace A si no es visible, B, ignora la excepción si no se encuentra el elemento:
element.isDisplayed().then(function(visible){
if (visible) {
// do A when element visible
}else{
// do B when element not visible
}
}, function () {
//suppress exception if element is not found on page
});
isDisplayed()
verificará si un elemento está visible o no, pero necesita verificar si un elemento está presente en DOM o no, use isElementPresent()
o isPresent()
:
expect(browser.isElementPresent(element(by.id(''userForm'')))).toBe(false);
expect(element(by.id(''userForm'')).isPresent()).toBe(false);
Ver también: