2016-08-05 91 views
0

Unten ist der Code für zwei Eingabefelder. Wie kann ich ein bestimmtes Element finden, wenn sie die gleichen Attribute haben?Positionierungselement im Winkelmesser, wenn zwei Elemente die gleichen Attribute haben

<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

pls Ihren Code bearbeiten. es ist nicht sichtbar! –

Antwort

0

Ich kann Ihren Code nicht sehen, aber die Antwort ist einfach.

Weisen beide dieser Elemente zu einem ElementArrayFinder über element.all - http://www.protractortest.org/#/api?view=ElementArrayFinder.prototype.all

Dann get() verwenden das entsprechende Element auf ihrem Index in dem ElementArrayFinder basierend zu greifen - http://www.protractortest.org/#/api?view=ElementArrayFinder.prototype.get

Zum Beispiel:

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

Sie könnten es auch nur in einer Zeile tun: element.all(by.css('li.navbar-item')).get(1).click() usw.

0

Wenn Sie die Kontrolle über die getestete App haben, können Sie als sinnvolle ID oder Klasse oder benutzerdefinierte Attribute betrachten, die Elemente eindeutig identifizieren würden, um e2e-Tests zu vereinfachen.

Anbetracht dessen, was wir im Moment haben, können Sie auf dem ng-change Attribut verlassen:

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