Асинхронное обещание вместе с селеном

#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;
    }
}