2016-08-05 35 views
0

下面是兩個輸入框的代碼,我如何在具有相同屬性的時定位特定元素?當兩個元素具有相同的屬性時,在量角器中定位元素

<input name="inputText" ng-required="field.required" ng-change="handleEdit('First name',selectedSensor[field.key],field.key)" ng-model="selectedSensor[field.key]" ng-pattern="/^[a-z]+$/i" maxlength="100" class="ng-pristine md-input ng-empty ng-invalid ng-invalid-required ng-valid-pattern ng-valid-minlength ng-valid-maxlength ng-touched" required="required" aria-invalid="true" style=""> 

<input name="inputText" ng-required="field.required" ng-change="handleEdit('Last name',selectedSensor[field.key],field.key)" ng-model="selectedSensor[field.key]" ng-pattern="/^[a-z]+$/i" maxlength="100" class="ng-pristine md-input ng-empty ng-invalid ng-invalid- required ng-valid-pattern ng-valid-minlength ng-valid-maxlength ng-touched" required="required" aria-invalid="true" style=""> 
+0

請編輯你的代碼。它不可見! –

回答

0

看不到你的代碼,但無論如何答案很簡單。

經由element.all指定這兩個元件的一個ElementArrayFinder - http://www.protractortest.org/#/api?view=ElementArrayFinder.prototype.all

然後使用get()抓住基於它的索引在ElementArrayFinder適當的元素 - http://www.protractortest.org/#/api?view=ElementArrayFinder.prototype.get

例如:

var userNavLinks = element.all(by.css('li.navbar-item')); 
var targetLink = userNavLinks.get(2); 
expect(targetLink.getText()).toEqual('My Link'); 

你也可以在一行中做: element.all(by.css('li.navbar-item')).get(1).click()

0

如果您可以控制測試中的應用,請考慮添加有意義的ID或類或自定義屬性,這些屬性可以唯一標識元素以簡化e2e測試

鑑於我們已在那一刻,你可以依靠ng-change屬性:

var firstName = $('input[ng-change*="First name"]'); 
var lastName = $('input[ng-change*="Last name"]'); 
相關問題