在下拉菜单中选择所有复选框

时间:2019-05-24 16:28:46

标签: node.js protractor multi-select

我是node.js / protractor的新手,并希望选择下拉列表中的所有复选框。我的代码有效,但是其中两个具有相同文本的项目存在问题。选中后,将两者都选中。在我的代码中,我想跳过这两项,但是我的文本比较无法正常工作。

由于选择这些重复项之一会同时选中这两项,因此选择第二个将取消选中这两项。为简单起见,我只希望在forEach循环中找到它们时就跳过它们。

element.all(by.xpath('//*[@id="work-bench"]/div[1]/div[1]/div/div[5]/div/div[3]/ul')).all(by.className('checkbox')).then(function(totalDCs) {                                
    console.log('DCs in Dropdown List ' + (totalDCs.length));
    DCCount = totalDCs.length;
});

element.all(by.className('multiselect__element')).then(function(options) {
    var i = 0; 
    var j = 1;
    options.forEach(function(option) {
        option.getText().then(function(text) {
            console.log(text + ' was selected');
            i++;                                   
            if(text != 'FULFILLMENT') {
                option.click();
                if(DCCount-j == i) {
                    return DCCount;
                }
            }
            else {
                j++;
                console.log('j equals ' + j);
            }    
        });
    });
});

if(text!='FULFILLMENT')行无法识别匹配项,因此进行选择(两次)。

1 个答案:

答案 0 :(得分:0)

尝试使用

if(text !== 'FULFILLMENT')

if(!text.localeCompare('FULFILLMENT'))

告诉我们是否适合您