HTML:
<button class="helperButton ng-scope" ng-if="!isDisabled && displayHelper( 'none' )" ng-click="select( 'none', $event );" type="button"> × Select None</button>
尝试找到:
element(by.css('button[ng-click="select( \'none\', $event );"]'));
得到错误:
失败:找不到使用定位器的元素: By.cssSelector(“button [ng-click = \”select('none',$ event); \“]”)
此链接提供了解决方案AngularJS Protractor - Finding an Element on a Page Using Ng-Click Binding,但没有详细介绍其引用的功能。任何帮助将不胜感激。
答案 0 :(得分:4)
基于ng-click
的定位器不太可靠且可读。
相反,我会依赖按钮文本:
by.xpath('//button[contains(., "Select None")]')
或,在类:
by.css('button.helperButton')
或者,如果可以控制应用程序HTML模板 - 添加id
属性并使用:
by.id('mybuttonid')
如果您仍想使用ng-click
- 尝试使用starts-with
CSS选择器语法检查ng-click
属性:
by.css('button[ng-click^=select]')