2016-09-01 6 views
0

Ich habe eine Tabelle mit mehreren Spalten und mehreren Zeilen, die Zeilen sind in Repeater und jede Zeile hat die gleiche Klasse. Grundsätzlich automatisiere ich einen Suchfunktionalitätstest im Winkelmesser und möchte sehen, ob der gesuchte Wert in den gegebenen Ergebnissen vorhanden ist. Also im Grunde muss ich in jede Klasse oder Repeater sichtbar gehen und nach einem Wert suchen? Wenn der Wert in einem der Elemente vorhanden oder enthalten ist, die der Test besteht, schlägt der Test fehl.Suche nach einem Wert nach Klasse oder Repeater in Winkelmesser?

+0

Was genau sind Sie gefragt/brauchen Hilfe bei? Kannst du ein Beispiel geben, Code anzeigen? Ja, Sie können entweder nach [Repeater] (http://www.protractortest.org/#/api?view=ProtractorBy.prototype.repeater) oder nach [class/css] suchen (http://www.protractortest.org/#). /api?view=webdriver.By.css) – Gunderson

+0

Dies ist eine sehr vage Frage. Ich empfehle Ihnen, ein bestimmtes Problem zu beheben, nachdem Sie versucht haben, eine Lösung zu programmieren. –

+0

Bearbeitet den Beitrag @Gunderson – Gudzo

Antwort

0

Angenommen, Ihre Suchbegriff wird „SearchKey“ und die Ergebnisse werden in einer Liste von Elementen wie angezeigt unter

<li class="file" ng-repeat="result in results" ng-class="{blahblah}"> 
<li class="file" ng-repeat="result in results" ng-class="{blahblah}"> 
<li class="file" ng-repeat="result in results" ng-class="{blahblah}"> 

Ihr Testfall sollte Behauptung etwas wie

unten haben
 var xpathExp = "//li[contains(.,'" + SearchKey + "')]" 
     expect(element(by.xpath(xpathExp).isDisplayed()).to.eventually.be.true; 
1

Wenn Sie fragen, was Locator zu wählen - „durch Repeater“ oder eine „von Klasse“, allgemein gesprochen, die Wahl würde davon abhängen, wie deutlich und lesbar eines Repeaters und Klasse du hast verfügbar.

Zum Beispiel, wenn Sie item in items Repeater und product Klasse haben, würde es die product-Klasse verwendet werden bevorzugt, da item in items einen Repeaters zu allgemein ist und möglicherweise nicht auf der Seite im Moment oder in Zukunft deutlich sein (Dies könnte eines Tages eine Überraschung sein und zu einem Haarausfall beim Debuggen führen.

Oder das Gegenteil Beispiel, wenn Sie product in products Repeater und col-md-1 Klasse haben, dann ist die „durch Repeater“ Locator bevorzugt werden würde, da col-md-1 Klasse ein UI- und orientierte Klasse Layout- und enthalten oder bringt keine „Daten“ -genaue Informationen; und es wird eher in der Zukunft geändert werden.


Ein weiterer Punkt ist, dass der „durch Repeater“ Locator Ihre Tests noch mehr gebunden an AngularJS, aber das „von Class“ -Ansatz ist Agnostiker ein bisschen mehr Generika und machen würde, was die Anwendung gebaut auf.