Параметры транспортира и oi.select

63
5

Это мой шаблон 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 конкретного, который я нашел. Благодарю.

спросил(а) 2021-01-19T19:21:14+03:00 6 месяцев назад
1
Решение
90

Вот пример кода при выборе по индексу или по значению/строке.
Значения индекса /, которые будут выбраны, находятся внутри массива.
Таким образом, пользователь может выбрать несколько значений.

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

ответил(а) 2021-01-19T19:21:14+03:00 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема