2017-06-27 5 views
0

Ich habe ein Szenario, in dem sich wiederholende Elemente mit Klassenname .product-tile sind, und ich versuche, die Elemente durch den Klassennamen und durch jede von ihnen durchlaufen und das Element mit dem Titel Products zu finden.für Schleife in Winkelmesser js

Wenn ja, versuche ich auf apt-add-to-cart-button klicken, aber hier ist der Code nicht für die Schleife.

 var products = element.all(by.css('.product-tile')); 
    for (var i = 0; i < products.length; i++) { 
    console.log(i); 
    var product = products.get(0); 
    if (product.element(by.css('.productName .title')).getText() === 'Products') { 
     product.element(by.css('apt-add-to-cart-button')).click(); 
    } 
} 

html:

enter image description here

Jede Hilfe würde geschätzt.

+1

Sie nicht 'getText()' auf diese Weise nutzen können. 'getText()' muss Versprechen lösen und sollte dann verwendet werden. – demouser123

+0

Bitte erwähnen Sie auch, wenn ein Fehler auftritt. – demouser123

+0

@ demouser123 gibt es keinen Fehler –

Antwort

0

Bitte lesen Sie this durch, da getText() ein Versprechen zurückgibt, das gelöst werden muss.

Sie können so etwas wie dieses

var products = element.all(by.css('.product-tile.ng-scope')); 
for (var i = 0; i <= products.length; i++) { 
console.log(i); 
var product = products.get(0); 
if (product.element(by.css('.productName .title')).getText().then(function(returnText){ 
    if(returnText==='Products'){ 
    product.element(by.css('apt-add-to-cart-button')).click(); 
}else{ 
    console.log('Something happened'); 
} 

}); 
} 

bearbeiten müssen - Ihre Klasse Verbindungsklasse enthält, so dass Sie nicht eine einzige Klasse in Ihrem CSS-Selektor verwenden. Bitte sehen aktualisierten Code

+0

Hier mein Code geht nicht für Schleife –

+0

Ich bekomme nicht console.log (i) Ausgabe –

+0

Bitte fügen Sie relevante HTML in der Frage Körper. – demouser123

1

tatsächlich die Wiederholung Wähler sollte wie als Versprechen gelöst werden unter

element.all(by.css('.product-tile.ng-scope')).then(function(items){ 
    console.log(items.length); //will get the length here 

// do the stuff here 
}); 
Verwandte Themen