Как искать конкретный текст из списка имен, используя условие if else у транспортира? - PullRequest
0 голосов
/ 13 июня 2018

var totalList_grps = element.all(by.css('p.group-name-text'));

    totalList_grps.getText().then(function(text){
        console.log('Total list of joined groups : ' + text);
      });

Попробовал приведенный выше код для печати списка названий групп.Получено: Общий список объединенных групп: Party, Innovation, capsLock, Gym, Sunrisers AW, Big Boss.Теперь мне нужно найти определенное имя, используя условие if else, и я попробовал второй набор кода, но он не отображает никаких выходных данных, даже ошибки.

totalList_grps.getText().then(function(itemList) {
            expect(itemList).toContain('Big Boss');
        });

Вот код разработчика

1 Ответ

0 голосов
/ 13 июня 2018

1) использовать by.cssContainingText():

var bigBoss = element(by.cssContainingText('p.group-name-text', 'Big Boss'));

// then you can call click(), getText(), getAttribute('') on found element as following:
bigBoss.click();

2) использовать elements.filter():

var bigBoss = element.all(by.css('p.group-name-text'))
    .filter(function(it){
        return it.getText().then(function(txt){
        console.log('txt: ' + txt);
        return txt === 'Big Boss' || txt.includes('Big Boss');
        });
    })
    .first();

3) использовать await с комбинацией if/else

var allNames = element.all(by.css('p.group-name-text'));
var length = await allNames.count();
var matchedIndex = -1;

for(var i=0;i<length;i++) {
    var name = await allNames.get(i).getText();
    if (name === 'Big Boss' || name.includes('Big Boss')) {
        matchedIndex = i;
        console.log('matchedIndex = ' + matchedIndex);
        break;
    }
}

var bigBoss = allNames.get(matchedIndex);

Мы можем реализовать вариант 3, не используя await, но код будет не легко читаемым и более сложным, чем текущий.

К вашему сведению, если вы хотите использовать await/async, вам нужно отключить управление обещаниями транспортира (известное как поток управления).Вы не можете использовать оба в своем коде одновременно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...