以下是两个输入框的代码,如何在具有相同属性时找到特定元素?
<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
- 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()
等。
答案 1 :(得分:0)
如果您可以控制正在测试的应用,请考虑添加有意义的ID或类或自定义属性,以便唯一标识元素以简化e2e测试。
鉴于我们目前的情况,您可以依赖ng-change
属性:
var firstName = $('input[ng-change*="First name"]');
var lastName = $('input[ng-change*="Last name"]');