【问题标题】:Playwright test fails when using waitForResponse使用 waitForResponse 时剧作家测试失败
【发布时间】:2021-08-14 13:38:20
【问题描述】:

当我使用命令“page.waitForResponse”时,我的编剧测试从未通过。虽然执行了 API 调用,并且可以在 chrome 的网络选项卡中看到。我将 jest 超时设置为 30000,但这似乎不是问题。

it("Test", async () => {
  await page.goto("http://localhost:8080/")
 await Promise.all([
  await page.waitForResponse("https://development/my/call", {
    timeout: 1000,
  }),
  page.click("css=body")
])
})

网络

url: https://development/my/call
Status: 200
Type: xhr

错误

Async callback was not invoked within the 30000 ms timeout specified by jest.setTimeout.Error

【问题讨论】:

    标签: reactjs playwright


    【解决方案1】:

    问题可能出在您的问题中没有包含的内容。

    通常,您必须在导致调用的操作发生之前开始等待响应。假设操作是在页面某处单击,然后您要输入:

    await Promise.all([
        page.waitForResponse("http://localhost:8060/my/call"),
        page.click('.someButton'),
    ]);
    

    试试这个,它可能会解决你的问题。

    【讨论】:

    • 我放了page.click("css=body"),但还是失败了
    • 您的网址字符串是否正确?很多时候,只匹配端点page.waitForResponse('/my/call') 就足够了。它也可以是一个正则表达式,函数。试着玩一下。
    • 还是失败了,奇怪
    • 好的,我认为您需要在问题中包含更多信息。显然这里缺少一些至关重要的信息。从“网络”选项卡发布调用屏幕,更多代码(此 waitForReponse() 方法调用的上方和下方几行。
    • 我明白了,但那不是我发布的,例如没有await Promise.all()
    猜你喜欢
    • 2022-12-24
    • 1970-01-01
    • 2021-01-28
    • 2022-09-24
    • 2022-06-24
    • 2022-10-06
    • 2021-10-12
    • 1970-01-01
    • 2021-05-26
    相关资源
    最近更新 更多