gpt4 book ai didi

javascript - 从 selenium webdriver promises 获得最终输出的简洁方法

转载 作者:搜寻专家 更新时间:2023-11-01 00:35:10 24 4
gpt4 key购买 nike

我有以下使用 selenium webdriver 获取元素文本的代码:

async function getText(driver, locator) {
return await (await driver.findElement(locator)).getText();
}

可能我脑袋有些迷糊,但是有没有更简洁的方法来编写这段代码?

我有一些其他函数需要更多的 promise 链 - 它会变得困惑,所以我想找到一种简洁的方式来编写这些函数。

函数只需要返回文本,我不希望它返回一个 promise 。

最佳答案

一般来说,一种更简洁、更易读的 promise 方法是使用临时变量:

async function getText(driver, locator) {   
const el = await driver.findElement(locator);
return el.getText();
}

没有必要使用return await,除非你用try包裹它。

Selenium 使用允许在内部安排 promise 链的修饰 promise 。可以在 WebElementPromise 上安排 getText 操作,结果将是 getText 的 promise :

function getText(driver, locator) {
return driver.findElement(locator).getText();
}

Selenium 的设计目的是在 async..await 出现之前编写类似同步的代码。代码保持异步。

The function just needs to return the text, I don't want it to return a promise.

这是 this problem 的特例.一旦代码是异步的,它就不能再次同步。一旦涉及 promise ,所有调用堆栈都应使用 promise 以实现正确的控制流。

关于javascript - 从 selenium webdriver promises 获得最终输出的简洁方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54707548/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com