Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 量角器:无法使用量角器获取所有元素_Javascript_Selenium_Protractor - Fatal编程技术网

Javascript 量角器:无法使用量角器获取所有元素

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

我无法使用css或repeater获取所有元素

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));
});