#javascript #selenium #promise
Вопрос:
Я хотел бы попробовать найти элемент с помощью Selenium из массива, если в этом массиве есть какой-либо элемент, я бы немедленно вернул его, завершив таким образом программу. Моя ошибка возникает при использовании асинхронной функции, которая возвращает обещание.
Promise { <pending> }
Что также происходит, так это извлечение из него недопустимых значений. Где он будет использовать ложное значение.
async function errorMessage(path,valid,notValid){
console.log("Check error message",path,valid,notValid);
try{
elem = await driver.wait(until.elementLocated(By.xpath(path)));
if (elem)
{
console.log(notValid);
return false;
}
else
{
return true;
}
}
catch(err){
console.log(err);
console.log(valid);
return true;
}
}
Который называется так
errorPaths=[["//div[@class='noty_body']//p[contains(.,'Health Insurance Number should be 10 digits long')]","Valid length","Invalid length"],
["//div[@class='noty_body']//p[contains(.,'Invalid HIN, Please try again.')]","Valid Hin","Invalid Hin"]];
for(let i = 0;i<errorPaths.length;i )
{
error = errorPaths[i];
console.log(errorMessage(error[0],error[1],error[2]));
if (errorMessage(error[0],error[1],error[2])===false){
//writeToCell(-);
console.log("Returned");
return;
}
}