量角器:根据html属性选择元素的语法

时间:2016-05-31 15:09:51

标签: javascript angularjs testing protractor automated-tests

我想选择这个元素:

 <span class="required" ng-class="{'disabled': saveInProgress}" 
 input-control="{okCallback:setFieldValue, params:['firstName'], 
 title:'First Name', value: person.firstName, 
 validate:{length:100},empty:false}">
     <span hs-placeholder="Type First Name" class="ng-binding"></span>
 </span>

还有这个:

 <span class="required" ng-class="{'disabled': saveInProgress}" 
  input-control="{okCallback:setFieldValue, params:['lastName'], 
  title:'Last Name', value: person.lastName, validate:{length:100}}">
      <span hs-placeholder="Type Last Name" class="ng-binding">
      </span>
 </span>

我尝试使用

这样做
 var input = element(by.css('span.required span.ng-binding'));  
 browser.actions().mouseMove(input).click().perform();

但它继续只调用名字元素。有任何想法吗?请:)

1 个答案:

答案 0 :(得分:1)

您需要使用

element.all(by.css('span.required span.ng-binding')).get(0) //to access 1st element
element.all(by.css('span.required span.ng-binding')).get(1) //to access 2nd element

因为在dom中有两个可用于选择器的元素

by.css('span.required span.ng-binding')

如果您使用

 element(by.css('span.required span.ng-binding'))

然后默认情况下,量角器将采用第一个显示的元素。

希望它能解决你的问题!