Более простой и понятный способ для обещаний в целом - использовать временные переменные:
async function getText(driver, locator) {
const el = await driver.findElement(locator);
return el.getText();
}
Нет необходимости использовать return await
, если вы не заключите его в try
.
* 1007.* Selenium использует оформленные обещания, которые позволяют планировать цепочки обещаний внутри.Можно запланировать действие
getText
на
WebElementPromise , и в результате будет обещано
getText
:
function getText(driver, locator) {
return driver.findElement(locator).getText();
}
Selenium был разработан таким образом, чтобы писать синхронный код до того, какПоявление async..await
.Код остается асинхронным.
Функция просто должна вернуть текст, я не хочу, чтобы она возвращала обещание.
Это особый случай эта проблема .Если код асинхронный, его нельзя снова сделать синхронным.Как только обещания задействованы, весь стек вызовов должен использовать обещания для правильного потока управления.