次のようなボタンがページにあります。
<button ng-click="myFunction()" ng-show="flag">
Submit
</button>
要素にはIDがありません。
Ng-Clickにバインドされた関数を使用してこの要素を見つける方法はありますか?または、Jasmine/Protractorを使用してこの要素を見つけるために、この要素にIDを割り当てる必要がありますか?
Protractor APIを使用しましたが、_ng-click
_を介した要素の検索に関連するものは見つかりませんでした。見つけた
element(by.buttonText("Submit"));
まったく同じではありませんが、私の環境で仕事をしています。
これをテストしただけで動作します:
element(by.css('[ng-click="myFunction()"]'))
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
テストフックを提供するためだけにしたくないIDを追加するのではなく、ボタンに_type="submit"
_を追加すると、By.css('[type="submit"]')
を検索できます