Транспортир если еще заявление с ожиданием - PullRequest
1 голос
/ 18 марта 2019

У меня есть три кода, которые я хочу проверить, существует ли один из них.Когда я запускаю свой код, я получаю сообщение «Ожидается, что false будет верным».Что я делаю не так

var Ecode1 = element(by.xpath('.//*[contains(text(),\'201\')]'));
  var Ecode2 = element(by.xpath('.//*[contains(text(),\'202\')]'));
  var Ecode3 = element(by.xpath('.//*[contains(text(),\'501\')]'));
if (expect(Ecode1.isPresent()).toBe(true)) {
    //ecode1 rules
  } 
  else if (expect(Ecode2.isPresent()).toBe(true)) {
    //ecode2 rules
  }
  else if (expect(Ecode3.isPresent()).toBe(true)) {
   //ecode3 rules
      }
  else {
    browser.close();
  }

1 Ответ

0 голосов
/ 18 марта 2019

Пока isPresent обещает, что решение будет:

async/await подход:

if (await Ecode1.isPresent()) {

} else if (await Ecode2.isPresent()) {

} else if (await Ecode3.isPresent()) {

} else {
  browser.close();
}

Web Driver Control Flow подход довольно уродлив и потребует дополнительной сложности:

Promise.all([
    Ecode1.isPresent(),
    Ecode2.isPresent(),
    Ecode3.isPresent()
]).then((result)=>{
    // Ecode1 present
    if(result[0]) {

    }
    // Ecode2 present
    else if(result[1]) {

    }
    // Ecode3 present
    else if(result[2]) {

    }
    else {
        browser.close();
    }
});

Кроме того, операторы expect под if являются избыточными

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