2016-06-29 13 views
1

Ich möchte Winkelmesser testen in meiner AngularJS-Anwendung, wo ich die Anzahl der Checked Checkboxen finden muss. Es gibt ungefähr 44 Checkboxen in einer Seite, von denen nur 4 überprüft werden. Ich schrieb unterhalb des Codes, wo die Konsole true, falsch, falsch, wahr, falsch, falsch, wahr, falsch, falsch, wahr druckt; usw.finden Sie die Anzahl der markierten Kontrollkästchen mit Winkelmesser

Wie finden Sie, wie viele wahre Werte gibt es?

var rows = element.all(by.model("accordoptionGroup[optgroup.id][objopt.id].value"));  
rows.isSelected().then(function(isSelect){ 
console.log(isSelect); 
}); 

Antwort

2

Es gibt einen besseren Weg - verwenden filter():

var rows = element.all(by.model("accordoptionGroup[optgroup.id][objopt.id].value")); 
var count = rows.filter(function (row) { 
    return row.isSelected().then(function (isSelected) { 
     return isSelected; 
    }); 
}).count(); 
expect(count).toEqual(4); 
+0

@Jinu: Dies ist ein besserer Ansatz, bitte benutzen Sie dies! –

+0

Basierend auf oben, ist es möglich, Zählernummer in eine Variable zu bekommen? Ich möchte es in einer Berechnung verwenden. – jurijk

+0

@jurijk Verwenden Sie diese 'count' -Variable, lösen Sie das Versprechen explizit mit' count.then (function (actualCount) {...}) 'und verwenden Sie den aufgelösten count-Integer-Wert' actualCount'. – alecxe

0

Man könnte so etwas tun -

var rows = element.all(by.model("accordoptionGroup[optgroup.id][objopt.id].value"));  

rows.isSelected().then(function(selected){ 
count =0; 
for(i=0;i<rows.length<i++) { 
if(selected) { 
    count++; 
    } 
} 
expect(count).toEqual(4); // to check 4 checkboxes are checked 
}); 

Dann könnten Sie versuchen, eine for-Schleife zu geben und es laufen, wenn ausgewählt es gibt true zurück, und Sie können die Count!

+0

I wie unten dieses earlier.But geben Fehler versucht, fehlgeschlagen: isSelect.count ist keine Funktion – Jinu

+0

ich meinen Code aktualisiert, bitte überprüfen und Lass mich wissen ob es funktioniert ! –

Verwandte Themen