validar validacion vacios vacio pattern formularios formulario ejemplos con campos javascript angularjs protractor chai

javascript - validacion - Comprobador de transportador si el elemento no existe



validar formulario javascript onclick (6)

Tengo una configuración en mi sitio web de base angular que activa y desactiva un menú desplegable. Si está apagado, no se muestra en la página principal.

Con Protractor, necesito verificar si este elemento no está presente cuando el interruptor está apagado. Sin embargo, no debería arrojarme al Error de elemento no encontrado, ya que es una prueba en un conjunto de muchas. ¿Cómo debería hacer esto?

He tratado de hacer:

expect($$(''.switch'').count()).to.equal(0).and.notify(next);

Pero estoy recibiendo un AssertionError con esto ...


Conseguí que la cosa funcionara usando algo que encontré en la documentación:

expect(element(by.css(''.switch'')).isPresent()).to.become(false).and.notify(next);

También usa aserciones, por lo que no rompe cucumberjs.


Estas respuestas no esperan que el elemento desaparezca. Para esperar a que desaparezca, debe utilizar las condiciones esperadas como se muestra a continuación. InvisibilityOf detecta si un elemento ha dejado el DOM. Véalo en los documentos aquí: https://www.protractortest.org/#/api?view=ProtractorExpectedConditions .

export const invisibilityOf = (el) => browser.wait(ExpectedConditions.invisibilityOf(el) as any, 12000, ''Element taking too long to disappear in the DOM'') const el = element(by.css(arg1)) return invisibilityOf(el)


Lo tengo funcionando haciendo esto:

expect(element(by.css(''css'')).isPresent()).toBeFalsy();



ninguna de estas respuestas que incluyen count() funcionó para mí;

el tipo de $$ (''. selector''). count () es ''object''

Tienes que usar la promesa para sacar el valor de count esta manera.

const nameSelector = ''[data-automation="name-input"]''; const nameInputIsDisplayed = () => { return $$(nameSelector).count() .then(count => count !== 0) } it(''should not be displayed'', () => { nameInputIsDisplayed().then(isDisplayed => { expect(isDisplayed).toBeFalsy() }) })


stalenessOf puede ser una buena manera de proceder: transportador - ExpectedConditions.stalenessOf

Por ejemplo, tienes un modal que está abierto actualmente. Lo cierras y esperas que no esté presente:

element(by.css(''.modal-dialog .cancel-button'')).click(); browser.wait(EC.stalenessOf(element(by.css(''.modal-dialog'')), 60000); expect(element(by.css(''.modal-dialog'')).isPresent()).toBeFalsy();