我的应用程序中存在以下安全问题
下面是代码的一部分
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方面第一个标识。
我改变了语句的顺序,发现问题不在选择器中,而是在第一个if语句中。
有人知道如何解决此问题吗?
答案 0 :(得分:2)
在下面的await语句中添加可解决此问题。
await t.wait(3000);
答案 1 :(得分:1)
我认为您需要几个括号:
async answerSecurityQuestion() {
var myAnswer;
if ( (await this.webPage.colorQuestion).exists ) {
myAnswer = "color1";
} else if ( (await this.webPage.phoneQuestion).exists ) {
myAnswer = "phone1";
} else {
myAnswer = "sports1";
}
}
也就是说,您正在等待括号中的内容,对吧?