Pra*_*sad 4 automated-tests typescript protractor angular playwright
我有一个场景,其中 API 接收多个响应(一次一个)并在 UI 上呈现。API 继续轮询数据库,直到接收完所有响应为止。我需要我的脚本等待 API 响应变为“完成”。我尝试了下面的代码,但它没有等到状态完成。
const response = await page.waitForResponse(response => response.url().includes('https://services/url') && response.status() === 200);
console.log('RESPONSE ' + (await response.body()));
Run Code Online (Sandbox Code Playgroud)
以下是记录的响应
{
"transactionDetail": {
"transactionID":"866f357f-7541-4ff2-b879-61ca284513a7",
"transactionTimestamp":"2021-08-02T10:48:50.372207",
"inLanguage":"en-US",
"serviceVersion":"1"
},
"resultSummary":{
"inputCount":1,
"successCount":1,
"failureCount":0},
"inquiryDetail": {
"kaseIterationId":"8a7b11547af8835d017b067ad06e04ba"
},
},
"response":"InProgress"
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能让我的脚本等到“响应”变成“已完成”而不是“进行中”。
小智 9
您可以通过提供异步谓词来做到这一点,page.waitForResponse如下所示:
async function isFinished(response) {
return response.url().includes('https://services/url') && response.status() === 200 && (await response.json()).response === 'Completed'
}
const response = await page.waitForResponse(async (response) => await isFinished(response));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19887 次 |
| 最近记录: |