我找不到带有量角器的这个$ ctrl部件的按钮。 按钮示例:
<button class="btn btn-primary ng-scope" ng-click="$ctrl.openProfileModal()" ng-if="$ctrl.admin && $ctrl.networkInfo.scenario !== 'simple_mesh'"
ng-disabled="$ctrl.stats['5G'].full && $ctrl.stats['2G'].full"><i class=""></i>Add virtual AP</button>
合理的解决方案似乎是用ng-click搜索:
addVAPButton = element(by.css('[ng-click="$ctrl.openProfileModal()"]'))
但它不起作用。我尝试了各种逗号组合,按类搜索,通过ng-if,通过xpath,尝试将id,name,其他属性添加到此按钮,但没有任何帮助Selenium找到它。我可以通过ng-click,name,id,model找到页面中没有$ ctrl的其他元素,所以我怀疑有一些关于$ ctrl与量角器不兼容的东西。达到此按钮的任何解决方案或解决方法?
量角器版本:5.3.0 角度版本:1.5.11
答案 0 :(得分:0)
要查找文本为添加虚拟AP 的按钮,您可以使用以下代码行:
addVAPButton = element(by.css("button.btn.btn-primary.ng-scope > i"))
注意:由于按钮是 Angular Element ,您必须等待按钮 < EM>可点击
作为替代方案,您可以尝试以下任一选项:
addVAPButton = element(by.css("button.btn.btn-primary.ng-scope"))
或者
addVAPButton = element(by.xpath("//button[@class='btn btn-primary ng-scope' and contains(.,'Add virtual AP')]"))
答案 1 :(得分:0)
找到一种适用于任何选择器的方法(css,ng-click,id,name,xpath,等等):
addVAPButton = $("[ng-click=\"$ctrl.openProfileModal()\"]");
browser.wait(protractor.ExpectedConditions.elementToBeClickable(addVAPButton), 10000).then(function(){
addVAPButton.click();})