Javascript 量角器:无法使用量角器获取所有元素
我无法使用css或repeater获取所有元素Javascript 量角器:无法使用量角器获取所有元素,javascript,selenium,protractor,Javascript,Selenium,Protractor,我无法使用css或repeater获取所有元素 this.clickRandomEmployee = function(){ employees = elementController.getAllElements('css','#employee-list li'); numberOfEmployees = employees.length; console.log(numberOfEmployees); var n
this.clickRandomEmployee = function(){
employees = elementController.getAllElements('css','#employee-list li');
numberOfEmployees = employees.length;
console.log(numberOfEmployees);
var numRand = this.getRandomNumber(numberOfEmployees);
console.log(numRand);
elementController.doubleClick(employees.get(numRand));
}
this.getAllElements = function(locatorType,value){
var emps;
console.log(locatorType);
console.log(value);
if(locatorType=='css'){
emps = element.all(by.css(value));
}
else if(locatorType=='repeater'){
emps = element.all(by.repeater(value));
}
return emps;
};
上面的代码从测试脚本中调用,以查找所有元素,但返回未定义的元素。请建议 为什么不放弃GetAllegements函数,只使用以下简单行:
employees = element.all(by.css('#employee-list li'))
及
这样做之后,您可能应该使用then语句来确保在继续之前返回中继器的值
employees = element.all(by.css('.items li')).then(function(returnedList) {
numberOfEmployees = returnedList.length;
...
})
getAllegements
返回将解析为元素数组的承诺。承诺上没有length
属性。相反,请使用count()
:
另见:
employees = element.all(by.css('.items li')).then(function(returnedList) {
numberOfEmployees = returnedList.length;
...
})
employees = elementController.getAllElements('css','#employee-list li');
employees.count().then(function (numberOfEmployees) {
var numRand = this.getRandomNumber(numberOfEmployees);
console.log(numRand);
elementController.doubleClick(employees.get(numRand));
});