Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.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 量角器:可以同时使用多个.get()吗?_Javascript_Node.js_Automation_Protractor_Aurelia - Fatal编程技术网

Javascript 量角器:可以同时使用多个.get()吗?

Javascript 量角器:可以同时使用多个.get()吗?,javascript,node.js,automation,protractor,aurelia,Javascript,Node.js,Automation,Protractor,Aurelia,我的措辞可能很糟糕,但我有一个类,元素中有多个,我想打印前五个条目,但不确定如何进行。我可以使用.get(1)等打印单个条目,但我不确定如何一起使用.get(1)`.get(2)`.get(3),或者如果可能的话。 这是我在页面对象文件中处理它的方式 checkFigures(数字){ 浏览器睡眠(8000); var checkBalance=element.all(by.css('ul.legend number>li')).get(1); checkBalance.getText().t

我的措辞可能很糟糕,但我有一个
    类,元素中有多个
  • ,我想打印前五个
  • 条目,但不确定如何进行。我可以使用
    .get(1)
    等打印单个条目,但我不确定如何一起使用
    .get(1)`.get(2)`.get(3)
    ,或者如果可能的话。 这是我在页面对象文件中处理它的方式

    checkFigures(数字){
    浏览器睡眠(8000);
    var checkBalance=element.all(by.css('ul.legend number>li')).get(1);
    checkBalance.getText().then(函数(文本){
    console.log(文本);
    //打印第二个
  • 项 }); }
  • 有一个CSS选择器“:lt”(小于),可以与jQuery一起使用

    $("ul.deposit li:lt(5)").size(); //5
    
    你能用它吗

    $("ul.deposit li:lt(5)").each(
        function(i){ 
            console.info(i + " - " + $(this).text()); 
    });
    
    var组合=“”;
    函数组合文本(a){
    合并=(合并的.concat(“”)).concat(a);
    }
    var checkBalance=element.all(by.css('ul.legend number>li');
    对于(变量i=0;i<5;i++){
    combineText(checkBalance[i].getText());
    }
    browser.driver.sleep(0)。然后(函数(){
    控制台日志(组合);
    });
    
    您可以在ElementArrayFinder上调用.each()。使用filter()或map()可以获取要查找的元素

    $('ul.deposit').$('li')//获取父ul然后获取所有子li
    .filter((元素,索引)=>{//过滤掉前5个元素
    返回指数<5
    })
    .each((元素,索引)=>{//对于5个元素中的每一个,请执行以下操作。(顺序不保证)
    return元素.getText().then((text)=>{
    控制台信息(索引+“-”+文本)
    })
    });
    
    感谢您的回复,我正在使用Aurelia,使用量角器可能会有点尴尬,它无法识别
    ul。存款李:lt(5)
    我收到一条消息,说明“指定了无效或非法的选择器”感谢您的帮助,当我运行上述代码时,我得到了“不要在循环中生成函数”警告:非常感谢您花时间使用此
    a.getText()。然后(函数(text){
    导致以下错误:失败:无法读取未定义的属性“getText”我已尝试查看是否可以解决此错误,但不确定现在要做什么?您好,我收到一条错误消息说“无法读取未定义的属性“getText”,我不确定传递到
    getText()中的内容
    由于函数在使用
    getText
    之后才被调用,非常感谢它的有效性,我实际上使用了一种更难看的方法来对前五个元素进行求和,但是你的方法更干净。我的问题是,我将如何对
    文本进行求和。我使用的是
    控制台.log(index+“-”+text.toString()。replace(/\D/g,”)
    以数字格式打印元素,但如果我可以打印五个元素的总和,这将是一个理想的选择。我目前可以使用不同的方法来执行此操作,但这比使用filter()和map()要复杂得多,这取决于您是否需要可以使用或的索引。
    var combined = '';
    function combineText(a){
      combined = ( combined.concat(' ') ).concat(a);
    }
    var checkBalance = element.all(by.css('ul.legend-numbers> li'));
    for(var i = 0; i < 5; i++){
      combineText(checkBalance[i].getText());
    }
    browser.driver.sleep(0).then(function () {
      console.log(combined);
    });
    
    $('ul.deposit').$$('li') //get parent ul then all child li
                .filter((elements, index) => { //filter out the first 5 elements
                    return index < 5
                })
                .each((element, index) => { //for each of the 5 elements do the following. (order is not guaranteed)
                    return element.getText().then((text) => {
                        console.info(index + " - " + text)
                    })
                });