jia*_*e17 20 javascript testing functional-testing ava playwright
我正在运行一个名为“创建管理”的测试。测试会先创建admin,然后检查admin是否创建成功。
在脚本中,我有一部分代码我想等待 3 秒再继续,因为每当单击提交按钮时,网站在导航完成后需要花费 3 秒来刷新管理表(用户信息列表) 。有关更多信息,此刷新不是导航,因此我的“waitForNavigation()”不起作用。
因此,流程将是这样的:“填写表单”>“点击提交按钮”>“等待导航”>“重新加载用户表(3s)”。
如果我不等待3秒表刷新,测试将抛出错误,因为在表中找不到注册用户(我有其他脚本来查找用户)。
Hol*_*olf 42
Playwright 本身就具有这种能力:
await page.waitForTimeout(3000);
Run Code Online (Sandbox Code Playgroud)
有关此内容的文档位于:https ://playwright.dev/docs/api/class-page#page-wait-for-timeout
小智 6
您可以包装setTimeout为Promise并在异步函数中使用它:
const delay = ms => new Promise(resolve => setTimeout(resolve, ms))
Run Code Online (Sandbox Code Playgroud)
其中ms- 延迟您想要等待的毫秒。
在您的代码中的用法:
...
await page.click('button :text-is("Save")');
await delay(3000); // <-- here we wait 3s
return username;
Run Code Online (Sandbox Code Playgroud)
小智 -1
用来setTimeout做那件事。这是一个例子
function delayedCheck() {
const processComplete = true; // set the right boolean here
if ( processComplete ) {
// Do something
} else {
setTimeout(delayedCheck, 3000); // try again in 3 seconds
}
}
delayedCheck();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44383 次 |
| 最近记录: |