量角器无法在ng-click元素上找到带有css的元素

awa*_*ken 5 javascript testing css-selectors angularjs protractor

HTML:

<button class="helperButton ng-scope" ng-if="!isDisabled && displayHelper( 'none' )" ng-click="select( 'none', $event );" type="button">  ×  Select None</button>
Run Code Online (Sandbox Code Playgroud)

试图找到:

element(by.css('button[ng-click="select( \'none\', $event );"]'));
Run Code Online (Sandbox Code Playgroud)

得到错误:

失败:找不到使用定位器的元素:By.cssSelector("button [ng-click = \"select('none',$ event); \"]")

此链接提供了一个解决方案AngularJS Protractor - 使用Ng-Click Binding在页面上查找元素,但没有详细说明其引用的函数.任何帮助,将不胜感激.

ale*_*cxe 4

基于的定位器ng-click不太可靠和可读。

相反,我会依赖按钮文本

by.xpath('//button[contains(., "Select None")]')
Run Code Online (Sandbox Code Playgroud)

或者,在课堂上:

by.css('button.helperButton')
Run Code Online (Sandbox Code Playgroud)

或者,如果可以控制应用程序 HTML 模板 - 添加属性id并使用:

by.id('mybuttonid')
Run Code Online (Sandbox Code Playgroud)

如果您仍然想使用ng-click- 尝试使用starts-withCSS 选择器语法来检查ng-click属性:

by.css('button[ng-click^=select]')
Run Code Online (Sandbox Code Playgroud)