web-dev-qa-db-ja.com

AngularJS Protractor-Ng-Clickバインディングを使用してページ上の要素を見つける

次のようなボタンがページにあります。

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

要素にはIDがありません。

Ng-Clickにバインドされた関数を使用してこの要素を見つける方法はありますか?または、Jasmine/Protractorを使用してこの要素を見つけるために、この要素にIDを割り当てる必要がありますか?

34
Lloyd Banks

Protractor APIを使用しましたが、_ng-click_を介した要素の検索に関連するものは見つかりませんでした。見つけた

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

まったく同じではありませんが、私の環境で仕事をしています。

33
Lloyd Banks

これをテストしただけで動作します:

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

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
1
Nguyen Vu Hoang

テストフックを提供するためだけにしたくないIDを追加するのではなく、ボタンに_type="submit"_を追加すると、By.css('[type="submit"]')を検索できます

0
redOctober13