gpt4 book ai didi

angular - Protractor 无法从 executescript 中获取值(value),它返回一个 promise

转载 作者:搜寻专家 更新时间:2023-10-30 21:57:04 24 4
gpt4 key购买 nike

在 Protractor 中,我有这个。

function getText(): string {
return browser.executeScript(`return 'some text';`);
}

第一个返回一个 promise ,我不知道如何从 promise 中获取值(value)。

然后我试着做

function getText(): string {
browser.executeScript(`return 'some text';`).then(function(result) {
return result;
});

第二个的问题是我找不到让它异步的方法。它仅在我的所有代码执行完毕后返回。

我要实现的目标是:

let text = getText();

希望有人能提供帮助,因为我找不到这个问题的有效答案。

编辑:我找不到将它放在函数外的变量中的方法。我目前的解决方案是:

browser.executeScript(`return 'some text';`).then(function(result) {
console.log(result);
//do your stuff here with the variable.
});
//can't find out how to use it outside the then function as other code runs first. But for now, that way works.

最佳答案

您可以使用 async ... await 机制来处理 promises:

async function getText(): Promise<string> {
const text = browser.executeScript(`return 'some text';`);
return text;
});

...
...

let text = await getText();

如果你不想等待你的 getText 方法完成(我不知道你为什么需要这个奇怪的东西)你可以不解决 promise :

let text = getText();

关于angular - Protractor 无法从 executescript 中获取值(value),它返回一个 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53205729/

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