AngularJS量角器 - 使用Ng-Click绑定在页面上查找元素

Llo*_*nks 34 jasmine protractor

我在页面上有一个按钮,如下所示:

<button ng-click="myFunction()" ng-show="flag">
    Submit
</button>
Run Code Online (Sandbox Code Playgroud)

该元素没有ID.

有没有办法使用绑定到Ng-Click的函数找到这个元素?或者我是否必须为此元素分配ID以使用Jasmine/Protractor定位它?

小智 71

刚试过这个,它的工作原理:

element(by.css('[ng-click="myFunction()"]'))
Run Code Online (Sandbox Code Playgroud)

  • @matewka我会不同意,因为它依赖于UI中的文本将非常脆弱...而且天气用户看到提交,SUBMIT应该无关紧要,然后一个简单的大写可以在一次性中断所有测试...更不用说本地化...... Ofc.在另一方面,我们需要确保ng-click ="submit()"没有绑定到我们的取消按钮... (19认同)
  • 恕我直言,我认为Lloyd Banks anwser更好.__E2E测试用于测试UI__.它们应该依赖于user__可见的__things,比如按钮标签"Submit",而不是HTML属性中隐藏的逻辑. (5认同)
  • 确认一下.转义引号(\")可能是必要的. (3认同)

Llo*_*nks 33

我经历了Protractor API并没有发现任何与查找元素有关的内容ng-click.我找到了

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

不太一样,但在我的环境中完成工作.

  • 虽然这有效,但值得注意的是[这不是量角器样式指南推荐的](http://www.protractortest.org/#/style-guide#http://www.protractortest.org/#/style -guide#喜欢按ID和按CSS-时,没有量角器 - 定位器 - 都可用).我想我会为它分配一个ID,以便轻松找到它. (2认同)