Il existe un attribut parentElementArrayFinder
disponible sur un objet ElementFinder
qui, d'après ce que j'ai compris, peut renvoyer un élément parent de l'élément en cours:
var myElement = $(".myclass");
var parentElement = myElement.parentElementArrayFinder;
Cependant, il n'est pas documenté dans le cadre de API publique de Protractor . parentElementArrayFinder
est-il une méthode fiable et stable pour localiser un élément parent et renverrait toujours le même élément que myElement.element(by.xpath(".."))
?
Pour résumer les commentaires, la réponse existante, mes observations et le code source, parentElementArrayFinder
devrait et ne peut être utilisé que si l'élément pour lequel vous obtenez parentElementArrayFinder
était "chaîné" à partir d'un élément.
Cela fonctionnera:
var parent = element(by.css(".parent"));
var child = parent.element(by.css(".child"));
child.parentElementArrayFinder # link to "parent" - defined
Cela ne va pas:
var child = element(by.css(".child"));
child.parentElementArrayFinder # no link to "parent" - undefined
J'ai trouvé le code pour le ElementFinder ici qui a un accessoire pour parentElementArrayFinder
ici .
De ce que j'ai trouvé dans le code. Une erreur est générée si parentElementArrayFinder
n'existe pas.
super();
if (!elementArrayFinder) {
throw new Error('BUG: elementArrayFinder cannot be empty');
}
this.parentElementArrayFinder = elementArrayFinder;
À partir de cela, nous pouvons supposer en toute sécurité qu'il sera toujours là, donc je pense que son utilisation est sans danger.