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在页面上查找元素,但没有详细说明其引用的函数.任何帮助,将不胜感激.
基于的定位器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)