Каждое вычисление значения и побочный эффект первого (левого) аргумента встроенного логического оператора AND & amp; & amp; & amp; и встроенный логический оператор OR || секвентируется перед каждым вычислением значения и побочным эффектом второго (правого) аргумента.
blockquote>Читайте здесь для более полного объяснения установленных правил: оценка порядка
До тех пор, пока 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
заявления являются избыточными