angularjs testing warnings protractor end-to-end

angularjs - Advertencia de "Se ha encontrado más de un elemento para el localizador"



testing warnings (3)

En una de mis pruebas, localizo un elemento utilizando un CSS selector :

element(by.css("ul.nav button"))

Hay más de un elemento que coincide con la consulta, pero como solo necesito el primero, estoy de acuerdo con el selector.

El problema es que el protractor lanza una advertencia:

ADVERTENCIA: se ha encontrado más de un elemento para el localizador By.cssSelector ("botón ul.nav"): se usará el primer resultado

¿Es posible suprimir la advertencia? En otras palabras, ¿cómo puedo hacerle saber al protractor que soy consciente del problema y que no quiero que se muestre más la advertencia?

Usando la versión de desarrollo del protractor (instalado directamente desde la rama maestra).


Intenta esto en su lugar:

element.all(by.css("ul.nav button")).first()

Básicamente, esto le dice a Protractor que ya sabes que hay más de un elemento, y que solo quieres el primero (como dijiste en tu pregunta).


La advertencia está ahí por una razón. Has vinculado tus pruebas demasiado a tus datos. El selector es demasiado general y deberías ser más específico. Ya sea diciendo el element(by.css("ul.nav button:nth-child(1)")) o buscando su búsqueda de forma diferente. No se supone que las pruebas de transportadores estén probando estilo o dominio, se supone que están probando lógica empresarial.


Menos código:

$$("ul.nav button").first()