AngularJS Protractor - поиск элемента на странице с использованием привязки Ng-Click

У меня есть кнопка на странице, которая выглядит так:

<button ng-click="myFunction()" ng-show="flag">
    Submit
</button>

Элемент не имеет идентификатора.

Есть ли способ найти этот элемент, используя функцию, связанную с Ng-Click? Или мне нужно назначить идентификатор этому элементу, чтобы найти его с помощью Jasmine/Protractor?

Ответ 1

Я прошел API-интерфейс Protractor и не нашел ничего, связанного с поиском элемента через ng-click. Я нашел

element(by.buttonText("Submit"));

Не совсем то же самое, но выполняет эту работу в моей среде.

Ответ 2

Просто проверил это, и он работает:

element(by.css('[ng-click="myFunction()"]'))

Ответ 3

Если вы хотите использовать ng-show, вы можете попробовать следующее:

element(by.Css("button[ng-show]")); // Get element with tag < button > and has ng-show attribute

или

element(by.Css("button[ng-show*=flag]")); // Get element with tag < button > and has ng-show attribute which contains word flag