javascript - attribute - title css
LocalizaciĆ³n de elementos padre con parentElementArrayFinder (2)
Hay un atributo parentElementArrayFinder
disponible en un objeto ElementFinder
que, según entiendo, puede devolver un elemento padre de la actual:
var myElement = $(".myclass");
var parentElement = myElement.parentElementArrayFinder;
Sin embargo, no está documentado como parte de la API pública de Protractor . ¿Es parentElementArrayFinder
un método confiable y estable para ubicar un elemento padre y siempre devolvería el mismo elemento que myElement.element(by.xpath(".."))
?
Encontré el código para el ElementFinder here que tiene un prop para parentElementArrayFinder
github.com/angular/protractor/blob/… .
De lo que he encontrado en el código. Se parentElementArrayFinder
un error si parentElementArrayFinder
no existe.
super();
if (!elementArrayFinder) {
throw new Error(''BUG: elementArrayFinder cannot be empty'');
}
this.parentElementArrayFinder = elementArrayFinder;
A partir de esto, podemos asumir con seguridad que siempre estará allí, así que creo que es seguro usarlo.
Para resumir los comentarios, la respuesta existente, mis observaciones y el código fuente, parentElementArrayFinder
debe y solo puede usarse si el elemento para el que obtuvo parentElementArrayFinder
fue "encadenado" de un elemento.
Esto funcionará:
var parent = element(by.css(".parent"));
var child = parent.element(by.css(".child"));
child.parentElementArrayFinder # link to "parent" - defined
Esto no va a:
var child = element(by.css(".child"));
child.parentElementArrayFinder # no link to "parent" - undefined