Javascript 断言在下拉列表中检查数组中的值

Javascript 断言在下拉列表中检查数组中的值,javascript,arrays,automation,protractor,automated-tests,Javascript,Arrays,Automation,Protractor,Automated Tests,我找不到检查数组中的元素(值-字符串)是否在下拉菜单中被选中的最佳解决方案。 这是我的html的一部分(下拉列表) 使用可以结合使用和CSS选择器 let selectedOptsText = element.all(by.css('.dropdown-item input:checked + label')) .getText(); // how to use selectedOptsText selectedOptsText.then(funct

我找不到检查数组中的元素(值-字符串)是否在下拉菜单中被选中的最佳解决方案。 这是我的html的一部分(下拉列表)


使用可以结合使用和CSS选择器

let selectedOptsText = element.all(by.css('.dropdown-item input:checked + label'))
                      .getText();

// how to use selectedOptsText
selectedOptsText.then(function(txts){
   console.log(txts) // txts has those checked text
});
使用
filter
map
的方法:

let selectedOptsText = // it's a promise

// Find all check boxes
element.all(by.css('.dropdown-item input[type="checkbox"]'))

// Filter to keep ones are checked
.filter(function(checkbox){
    return checkbox.isSelected();
})
// After filter, checkboxes passed down to map() are all checked
.map(function(checkbox){
    // first get checkbox's parent, then get the label of same parent
    return checkbox.element(by.xpath('./../label'))
        .getText();
});

// how to use selectedOptsText
selectedOptsText.then(function(txts){
   console.log(txts) // txts has those checked text
});
使用每个的方法:

let selectedOptsText = []; // to store checked text
let promiseA = 

// Find all check boxes
element.all(by.css('.dropdown-item input[type="checkbox"]'))

// Iterate each checkbox, store its text into selectedOptsText, if it's checked
.each(function(checkbox){
    checkbox.isSelected().then(function(selected){
        if(selected) {
            checkbox.element(by.xpath('./../label'))
            .getText()
            .then(function(txt){
                selectedOptsText.push(txt);
            });
        }
    })
});

// how to use selectedOptsText, it's different with above approach
promiseA.then(function() {
    console.log(selectedOptsText); // selectedOptsText has those checked text
});

使用可以结合使用和CSS选择器

let selectedOptsText = element.all(by.css('.dropdown-item input:checked + label'))
                      .getText();

// how to use selectedOptsText
selectedOptsText.then(function(txts){
   console.log(txts) // txts has those checked text
});
使用
filter
map
的方法:

let selectedOptsText = // it's a promise

// Find all check boxes
element.all(by.css('.dropdown-item input[type="checkbox"]'))

// Filter to keep ones are checked
.filter(function(checkbox){
    return checkbox.isSelected();
})
// After filter, checkboxes passed down to map() are all checked
.map(function(checkbox){
    // first get checkbox's parent, then get the label of same parent
    return checkbox.element(by.xpath('./../label'))
        .getText();
});

// how to use selectedOptsText
selectedOptsText.then(function(txts){
   console.log(txts) // txts has those checked text
});
使用每个的方法:

let selectedOptsText = []; // to store checked text
let promiseA = 

// Find all check boxes
element.all(by.css('.dropdown-item input[type="checkbox"]'))

// Iterate each checkbox, store its text into selectedOptsText, if it's checked
.each(function(checkbox){
    checkbox.isSelected().then(function(selected){
        if(selected) {
            checkbox.element(by.xpath('./../label'))
            .getText()
            .then(function(txt){
                selectedOptsText.push(txt);
            });
        }
    })
});

// how to use selectedOptsText, it's different with above approach
promiseA.then(function() {
    console.log(selectedOptsText); // selectedOptsText has those checked text
});

谢谢,我将在星期二试一试。它看起来很简单,我花了一整天的时间来寻找解决方案……:)但是,你能给我举个例子,我如何使用过滤器或映射函数来实现它吗?因为我想我没有看轻他们。我非常感谢你给我举了很多例子谢谢,我将在星期二试一试。它看起来很简单,我花了一整天的时间来寻找解决方案……:)但是,你能给我举个例子,我如何使用过滤器或映射函数来实现它吗?因为我想我没有看轻他们。我非常感谢你给我举了很多例子