量角器和 oi.select 选项单击

protractor and oi.select options click

这是我的模板 html oi.select。

<oi-select class="oi-select" 
    oi-options="group.name for group in groups track by group._id" 
    multiple placeholder="" ng-model="selectedGroups">
</oi-select>

我在 test.js

中尝试了以下代码
element(by.model('selectedGroups')).click().then(function () {
    element.all(by.repeater("(group, options) in groups"))
       .then(function (guests) {
           guests[0].click();
       });
});

它只会点击一个选项。 guests[0].getText() 给出所有组名标签。如果你以前解决过,请帮助我。我尝试了很多 select 的例子,但没有找到具体的 oi.select。谢谢

这是 select 按索引或按 value/string 时的示例代码。
将 selected 的 index/values 在一个数组中。
这样用户就可以 select 多个值。

describe('test', function() {
    var arrIndex = [2, 0];
    var arrString = ['jeans', 'belt'];
    var elmModel = element(by.model('query'));

    it('open browser', function() {      
        browser.get('https://tamtakoe.github.io/oi.select/#/select/#multiple');
    });

    it('test index', function() {      
        browser.get('https://tamtakoe.github.io/oi.select/#/select/#multiple');
        var elmRptr = element.all(by.repeater('option in options'))
        selectByIndex(0, arrIndex, elmRptr);
    });

    it('test string', function() {      
        selectByString(0, arrString);
    });

    function selectByString(i, arrTemp) {
        if (i < arrTemp.length) {
            elmModel.click();  
            var elmString = element(by.cssContainingText('[ng-repeat="option in options"]', arrTemp[i]));
            elmString.click();
            selectByString(i + 1, arrTemp);
        }
    }

    function selectByIndex(i, arrTemp, elmTemp) {
        if (i < arrTemp.length) {
            elmModel.click();  
            elmTemp.get(arrTemp[i]).click();
            selectByIndex(i + 1, arrTemp, elmTemp);
        }
    }
});