使用puppeteer,我如何等待特定的xhr请求完成

时间:2019-02-05 09:42:53

标签: javascript automated-tests puppeteer jest-puppeteer

我正在测试我的应用程序,我想检查是否发送了来自应用程序的XHR请求。当我使用page.waitFor(5000)时,它有时会工作,但有时却不会。有没有更好的办法让代码等待XHR完成或解决?

1 个答案:

答案 0 :(得分:1)

我认为您需要更改策略。无需等待X秒,而是触发一个满足您需求的事件。

因为您要测试自己的应用程序,所以我建议您监听网络流量(在this question之后)

简而言之:

  • 启用将流量检查page.setRequestInterceptionEnabled设置为true
  • 为每个请求page.on('request'注册一个事件侦听器
  • 检查(对于每个请求)是否与您所需的请求相匹配(使用request.url属性)
  • 当网址与所需的请求匹配时调用您的函数