J'ai un bouton sur une page qui ressemble à:
<button ng-click="myFunction()" ng-show="flag">
Submit
</button>
L'élément n'a pas d'ID.
Existe-t-il un moyen de trouver cet élément en utilisant la fonction liée à Ng-Click? Ou dois-je attribuer un ID à cet élément pour le localiser à l'aide de Jasmine/Protractor?
J'ai parcouru l'API Protractor et je n'ai rien trouvé en rapport avec la recherche d'un élément via ng-click
. J'ai trouvé
element(by.buttonText("Submit"));
Pas tout à fait la même chose, mais fait le travail dans mon environnement.
Je viens de tester cela et cela fonctionne:
element(by.css('[ng-click="myFunction()"]'))
Si vous souhaitez utiliser ng-show
, vous pouvez essayer ceci:
element(by.Css("button[ng-show]")); // Get element with tag < button > and has ng-show attribute
ou:
element(by.Css("button[ng-show*=flag]")); // Get element with tag < button > and has ng-show attribute which contains Word flag
Plutôt que d'ajouter un ID, ce que je n'aime pas faire juste pour fournir un crochet de test, j'ajouterais type="submit"
Au bouton et ensuite vous pouvez rechercher By.css('[type="submit"]')