javascript - 为什么 Testcafe 忽略 If Else If 语句的第一个条件

标签 javascript testing automated-tests assertion testcafe

我的申请中有以下安全问题

  1. 您的第一个电话号码是什么?
  2. 你最喜欢什么颜色?
  3. 你最喜欢的运动队是谁?

下面是部分代码

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 语句。

有谁知道如何解决这个问题?

最佳答案

添加下面的 await 语句解决了这个问题。

await t.wait(3000);

关于javascript - 为什么 Testcafe 忽略 If Else If 语句的第一个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52571488/

相关文章:

javascript - nodejs (expressjs) 如何将信息从 2 个查询传递到 jade?

javascript - 仅使用 Javascript 发推文

c# - Telerik WebAii Framework - 如何将焦点更改为新打开的页面/窗口

javascript - 在 jquery 库中重新定义方法的最佳方式

javascript - 执行某些操作后检查 Javascript 变量的内容

apache-spark - SparkSession 在单元测试之间没有正确关闭

android - 仅使用一部手机和模拟器即可进行大众测试

c++ - C++ 应用程序的端到端测试框架

html - 如何从 Selenium 中的 HTML5 输入字段错误消息中获取文本?

c# - 阿塔塔。 C#。如何打开新标签页?