我们正在从Protractor迁移到使用SeleniumWebdriver for Node.js: https://www.npmjs.com/package/selenium-webdriver
使用Protractor for AngularJS,我们可以:
element.all(by.repeater('r in roles')).first().element(by.css('.update-role')).click();
我想弄清楚使用require('selenium-webdriver')
的等效调用可能是什么样的,有人有想法吗?
具体来说,by.repeater()
来电是我不知道的等价物。
答案 0 :(得分:1)
这很简单。你需要找到所有元素,并将它们视为相似的元素。
element.all(by.css('[ng-repeat="r in roles"]')).then(function(eachRepeat){
for(var i=0;i<eachRepeat.length; i++){
// do something else with the repeat. where eachRepeat[0] is the first element
console.log(eachRepeat[i]);
}
});
您还可以为元素编号添加条件。或元素的文本。
element.all(by.css('[ng-repeat="r in roles"]')).getText().then(function(eachRepeat){
for(var i=0;i<eachRepeat.length; i++){
console.log(eachRepeat[i]);
if(eachRepeat[i] === 'someSpecificText'){
eachRepeat[i].click();
}else{
console.log('error');
}
}
});
如果您对此有任何疑问,请与我们联系。