gpt4 book ai didi

selenium-webdriver - 当函数没有返回值时,使用页面对象模型返回 promise 或在函数中使用 async/await 是更好的做法

转载 作者:行者123 更新时间:2023-12-04 07:51:43 26 4
gpt4 key购买 nike

希望得到一些关于在这种情况下什么是最佳实践的反馈
( Protractor 测试框架使用带有 async/await 的页面对象模型而不是 SEELENIUM_PROMISE_MANAGER)。

假设我有一个名为 setUsername 的函数它只是在字段中设置用户名。我想知道使用 async/await 等待函数本身中的操作或返回操作是更好的做法。无论哪种方式,无论何时调用该函数都需要等待。

选项 1

this.setUsername = async function (username) {
await usernameInput.sendKeys(username);
}

选项 2
this.setUsername = function (username) {
return usernameInput.sendKeys(username);
}

调用任一选项的语法
await loginPO.setUsername('admin');

推理:如果我选择 option1,那么我将声明 await 两次(在 func 和调用时),这似乎是不必要的,但该函数的行为更符合我的预期。如果我选择选项 2,那么 await 只使用一次,但从我只需要设置一个值而不返回任何内容的函数中返回任何内容似乎是错误的。

最佳答案

在我看来最好使用 选项 1 ,您将在其中明确显示您的函数是 async因为有一些需要等待的 Action 。

所以,每个人都会明白,使用它需要函数来解决一个 promise 。
此外,如果您的方法有两个或更多需要等待的操作,那么您必须使您的函数 async .

关于selenium-webdriver - 当函数没有返回值时,使用页面对象模型返回 promise 或在函数中使用 async/await 是更好的做法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54693279/

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