Почему Testcafe игнорирует первое условие оператора If Else If - PullRequest
0 голосов
/ 29 сентября 2018

У меня есть следующие вопросы безопасности в моем приложении

  1. Какой был ваш первый номер телефона?
  2. Какой ваш любимый цвет?
  3. Кто ваш любимый вид спортаteam?

Ниже приведена часть кода

export default class webPage {
constructor () {
this.securityQuestion = Selector('#challengeQuestionLabelId');
this.sportQuestion    = this.securityQuestion.withText('sports');
this.colorQuestion    = this.securityQuestion.withText('color');
this.phoneQuestion    = this.securityQuestion.withText('phone');

}
}

Условные операторы

async answerSecurityQuestion() { 
                 var myAnswer; 

                 if ( await this.webPage.colorQuestion.exists ) { 
                     myAnswer = "color1"; 
                 } else if ( await this.webPage.phoneQuestion.exists ) { 
                     myAnswer = "phone1"; 
                 } else {
                     myAnswer = "sports1"; 
                 }

Проблема с первым оператором if. Код не идентифицируетпервый вопрос if, даже если вопрос содержит «color».

Я изменил порядок операторов и обнаружил, что проблема не в селекторах, а проблема в первом операторе if.

Кто-нибудь знает, как решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

Добавление ниже оператора await решило проблему.

await t.wait(3000);
0 голосов
/ 29 сентября 2018

Я думаю, вам нужна пара круглых скобок:

async answerSecurityQuestion() { 

             var myAnswer; 

             if ( (await this.webPage.colorQuestion).exists ) { 
                 myAnswer = "color1"; 
             } else if ( (await this.webPage.phoneQuestion).exists ) { 
                 myAnswer = "phone1"; 
             } else {
                 myAnswer = "sports1"; 
             }

}

То есть вы ждете вещи в скобках, верно?

...